latitudesh-python-sdk 1.1.0__py3-none-any.whl → 2.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of latitudesh-python-sdk might be problematic. Click here for more details.
- latitudesh_python_sdk/_hooks/types.py +7 -0
- latitudesh_python_sdk/_version.py +6 -4
- latitudesh_python_sdk/apikeys.py +73 -156
- latitudesh_python_sdk/basesdk.py +16 -24
- latitudesh_python_sdk/billing.py +13 -32
- latitudesh_python_sdk/events_sdk.py +11 -34
- latitudesh_python_sdk/firewalls_sdk.py +105 -264
- latitudesh_python_sdk/httpclient.py +6 -16
- latitudesh_python_sdk/ipaddresses_sdk.py +29 -68
- latitudesh_python_sdk/models/__init__.py +2586 -1126
- latitudesh_python_sdk/models/apierror.py +30 -14
- latitudesh_python_sdk/models/assign_server_virtual_networkop.py +2 -2
- latitudesh_python_sdk/models/{bandwidth_plan.py → bandwidth_plan_data.py} +9 -9
- latitudesh_python_sdk/models/bandwidth_plans.py +14 -3
- latitudesh_python_sdk/models/custom_tag.py +15 -0
- latitudesh_python_sdk/models/custom_tag_data.py +54 -0
- latitudesh_python_sdk/models/custom_tags.py +26 -0
- latitudesh_python_sdk/models/delete_ssh_keyop.py +16 -0
- latitudesh_python_sdk/models/delete_user_dataop.py +16 -0
- latitudesh_python_sdk/models/deploy_config.py +11 -6
- latitudesh_python_sdk/models/error_object.py +11 -6
- latitudesh_python_sdk/models/event_data.py +98 -0
- latitudesh_python_sdk/models/events.py +16 -1
- latitudesh_python_sdk/models/filesystem_data.py +4 -0
- latitudesh_python_sdk/models/firewall.py +15 -0
- latitudesh_python_sdk/models/firewall_assignment_data.py +50 -0
- latitudesh_python_sdk/models/firewall_assignments.py +29 -0
- latitudesh_python_sdk/models/firewall_data.py +71 -0
- latitudesh_python_sdk/models/firewall_server.py +4 -1
- latitudesh_python_sdk/models/firewalls.py +7 -7
- latitudesh_python_sdk/models/get_firewall_assignmentsop.py +3 -3
- latitudesh_python_sdk/models/get_ssh_keyop.py +30 -0
- latitudesh_python_sdk/models/get_ssh_keysop.py +22 -0
- latitudesh_python_sdk/models/get_traffic_consumptionop.py +8 -4
- latitudesh_python_sdk/models/get_user_dataop.py +31 -0
- latitudesh_python_sdk/models/get_users_dataop.py +35 -0
- latitudesh_python_sdk/models/latitudesherror.py +26 -0
- latitudesh_python_sdk/models/no_response_error.py +13 -0
- latitudesh_python_sdk/models/operating_system_data.py +65 -0
- latitudesh_python_sdk/models/operating_systems.py +15 -0
- latitudesh_python_sdk/models/out_of_band_connection.py +4 -4
- latitudesh_python_sdk/models/patch_user_dataop.py +69 -0
- latitudesh_python_sdk/models/post_ssh_keyop.py +58 -0
- latitudesh_python_sdk/models/post_user_dataop.py +45 -0
- latitudesh_python_sdk/models/project_include.py +3 -0
- latitudesh_python_sdk/models/put_ssh_keyop.py +80 -0
- latitudesh_python_sdk/models/region_resource_data.py +4 -4
- latitudesh_python_sdk/models/responsevalidationerror.py +25 -0
- latitudesh_python_sdk/models/role.py +11 -0
- latitudesh_python_sdk/models/server.py +11 -6
- latitudesh_python_sdk/models/server_data.py +14 -3
- latitudesh_python_sdk/models/server_region_resource_data.py +40 -0
- latitudesh_python_sdk/models/{ssh_key.py → ssh_keys.py} +13 -2
- latitudesh_python_sdk/models/storage_plan_data.py +47 -0
- latitudesh_python_sdk/models/storage_plans.py +14 -3
- latitudesh_python_sdk/models/update_serverop.py +58 -10
- latitudesh_python_sdk/models/user_data.py +11 -0
- latitudesh_python_sdk/models/virtual_network.py +30 -6
- latitudesh_python_sdk/models/virtual_network1.py +15 -0
- latitudesh_python_sdk/models/virtual_network_assignment.py +41 -0
- latitudesh_python_sdk/models/virtual_network_assignment_data.py +68 -0
- latitudesh_python_sdk/models/virtual_network_assignments.py +5 -5
- latitudesh_python_sdk/models/virtual_network_data.py +88 -0
- latitudesh_python_sdk/models/virtual_networks.py +3 -3
- latitudesh_python_sdk/operatingsystems_sdk.py +13 -32
- latitudesh_python_sdk/plans.py +99 -214
- latitudesh_python_sdk/privatenetworks.py +131 -290
- latitudesh_python_sdk/projects_sdk.py +79 -158
- latitudesh_python_sdk/regions_sdk.py +25 -66
- latitudesh_python_sdk/roles.py +25 -64
- latitudesh_python_sdk/sdk.py +110 -73
- latitudesh_python_sdk/sdkconfiguration.py +0 -7
- latitudesh_python_sdk/servers_sdk.py +305 -646
- latitudesh_python_sdk/sshkeys_sdk.py +1856 -0
- latitudesh_python_sdk/storage.py +41 -120
- latitudesh_python_sdk/tags.py +67 -146
- latitudesh_python_sdk/teams_sdk.py +41 -100
- latitudesh_python_sdk/teamsmembers.py +37 -96
- latitudesh_python_sdk/traffic_sdk.py +37 -76
- latitudesh_python_sdk/userdata_sdk.py +959 -149
- latitudesh_python_sdk/userprofile.py +37 -100
- latitudesh_python_sdk/utils/__init__.py +131 -46
- latitudesh_python_sdk/utils/forms.py +49 -28
- latitudesh_python_sdk/utils/serializers.py +3 -2
- latitudesh_python_sdk/utils/unmarshal_json_response.py +24 -0
- latitudesh_python_sdk/virtualmachines.py +71 -140
- latitudesh_python_sdk/vpnsessions.py +93 -172
- {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/METADATA +76 -43
- {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/RECORD +91 -67
- {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/WHEEL +1 -1
- latitudesh_python_sdk/models/storage_plan.py +0 -36
- latitudesh_python_sdk/sshkeys.py +0 -1050
- {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/LICENSE +0 -0
latitudesh_python_sdk/roles.py
CHANGED
|
@@ -6,6 +6,7 @@ from latitudesh_python_sdk import models, utils
|
|
|
6
6
|
from latitudesh_python_sdk._hooks import HookContext
|
|
7
7
|
from latitudesh_python_sdk.types import OptionalNullable, UNSET
|
|
8
8
|
from latitudesh_python_sdk.utils import get_security_from_env
|
|
9
|
+
from latitudesh_python_sdk.utils.unmarshal_json_response import unmarshal_json_response
|
|
9
10
|
from typing import Any, Dict, List, Mapping, Optional, Union
|
|
10
11
|
|
|
11
12
|
|
|
@@ -73,6 +74,7 @@ class Roles(BaseSDK):
|
|
|
73
74
|
|
|
74
75
|
http_res = self.do_request(
|
|
75
76
|
hook_ctx=HookContext(
|
|
77
|
+
config=self.sdk_configuration,
|
|
76
78
|
base_url=base_url or "",
|
|
77
79
|
operation_id="get-roles",
|
|
78
80
|
oauth2_scopes=[],
|
|
@@ -107,28 +109,17 @@ class Roles(BaseSDK):
|
|
|
107
109
|
|
|
108
110
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
109
111
|
return models.GetRolesResponse(
|
|
110
|
-
result=
|
|
112
|
+
result=unmarshal_json_response(models.GetRolesResponseBody, http_res),
|
|
111
113
|
next=next_func,
|
|
112
114
|
)
|
|
113
115
|
if utils.match_response(http_res, "4XX", "*"):
|
|
114
116
|
http_res_text = utils.stream_to_text(http_res)
|
|
115
|
-
raise models.APIError(
|
|
116
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
117
|
-
)
|
|
117
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
118
118
|
if utils.match_response(http_res, "5XX", "*"):
|
|
119
119
|
http_res_text = utils.stream_to_text(http_res)
|
|
120
|
-
raise models.APIError(
|
|
121
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
122
|
-
)
|
|
120
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
123
121
|
|
|
124
|
-
|
|
125
|
-
http_res_text = utils.stream_to_text(http_res)
|
|
126
|
-
raise models.APIError(
|
|
127
|
-
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
|
128
|
-
http_res.status_code,
|
|
129
|
-
http_res_text,
|
|
130
|
-
http_res,
|
|
131
|
-
)
|
|
122
|
+
raise models.APIError("Unexpected response received", http_res)
|
|
132
123
|
|
|
133
124
|
async def list_async(
|
|
134
125
|
self,
|
|
@@ -193,6 +184,7 @@ class Roles(BaseSDK):
|
|
|
193
184
|
|
|
194
185
|
http_res = await self.do_request_async(
|
|
195
186
|
hook_ctx=HookContext(
|
|
187
|
+
config=self.sdk_configuration,
|
|
196
188
|
base_url=base_url or "",
|
|
197
189
|
operation_id="get-roles",
|
|
198
190
|
oauth2_scopes=[],
|
|
@@ -227,28 +219,17 @@ class Roles(BaseSDK):
|
|
|
227
219
|
|
|
228
220
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
229
221
|
return models.GetRolesResponse(
|
|
230
|
-
result=
|
|
222
|
+
result=unmarshal_json_response(models.GetRolesResponseBody, http_res),
|
|
231
223
|
next=next_func,
|
|
232
224
|
)
|
|
233
225
|
if utils.match_response(http_res, "4XX", "*"):
|
|
234
226
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
235
|
-
raise models.APIError(
|
|
236
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
237
|
-
)
|
|
227
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
238
228
|
if utils.match_response(http_res, "5XX", "*"):
|
|
239
229
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
240
|
-
raise models.APIError(
|
|
241
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
242
|
-
)
|
|
230
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
243
231
|
|
|
244
|
-
|
|
245
|
-
http_res_text = await utils.stream_to_text_async(http_res)
|
|
246
|
-
raise models.APIError(
|
|
247
|
-
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
|
248
|
-
http_res.status_code,
|
|
249
|
-
http_res_text,
|
|
250
|
-
http_res,
|
|
251
|
-
)
|
|
232
|
+
raise models.APIError("Unexpected response received", http_res)
|
|
252
233
|
|
|
253
234
|
def get(
|
|
254
235
|
self,
|
|
@@ -307,6 +288,7 @@ class Roles(BaseSDK):
|
|
|
307
288
|
|
|
308
289
|
http_res = self.do_request(
|
|
309
290
|
hook_ctx=HookContext(
|
|
291
|
+
config=self.sdk_configuration,
|
|
310
292
|
base_url=base_url or "",
|
|
311
293
|
operation_id="get-role-id",
|
|
312
294
|
oauth2_scopes=[],
|
|
@@ -321,29 +303,18 @@ class Roles(BaseSDK):
|
|
|
321
303
|
|
|
322
304
|
response_data: Any = None
|
|
323
305
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
324
|
-
return
|
|
306
|
+
return unmarshal_json_response(models.Role, http_res)
|
|
325
307
|
if utils.match_response(http_res, "404", "application/vnd.api+json"):
|
|
326
|
-
response_data =
|
|
327
|
-
raise models.ErrorObject(
|
|
308
|
+
response_data = unmarshal_json_response(models.ErrorObjectData, http_res)
|
|
309
|
+
raise models.ErrorObject(response_data, http_res)
|
|
328
310
|
if utils.match_response(http_res, "4XX", "*"):
|
|
329
311
|
http_res_text = utils.stream_to_text(http_res)
|
|
330
|
-
raise models.APIError(
|
|
331
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
332
|
-
)
|
|
312
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
333
313
|
if utils.match_response(http_res, "5XX", "*"):
|
|
334
314
|
http_res_text = utils.stream_to_text(http_res)
|
|
335
|
-
raise models.APIError(
|
|
336
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
337
|
-
)
|
|
315
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
338
316
|
|
|
339
|
-
|
|
340
|
-
http_res_text = utils.stream_to_text(http_res)
|
|
341
|
-
raise models.APIError(
|
|
342
|
-
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
|
343
|
-
http_res.status_code,
|
|
344
|
-
http_res_text,
|
|
345
|
-
http_res,
|
|
346
|
-
)
|
|
317
|
+
raise models.APIError("Unexpected response received", http_res)
|
|
347
318
|
|
|
348
319
|
async def get_async(
|
|
349
320
|
self,
|
|
@@ -402,6 +373,7 @@ class Roles(BaseSDK):
|
|
|
402
373
|
|
|
403
374
|
http_res = await self.do_request_async(
|
|
404
375
|
hook_ctx=HookContext(
|
|
376
|
+
config=self.sdk_configuration,
|
|
405
377
|
base_url=base_url or "",
|
|
406
378
|
operation_id="get-role-id",
|
|
407
379
|
oauth2_scopes=[],
|
|
@@ -416,26 +388,15 @@ class Roles(BaseSDK):
|
|
|
416
388
|
|
|
417
389
|
response_data: Any = None
|
|
418
390
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
419
|
-
return
|
|
391
|
+
return unmarshal_json_response(models.Role, http_res)
|
|
420
392
|
if utils.match_response(http_res, "404", "application/vnd.api+json"):
|
|
421
|
-
response_data =
|
|
422
|
-
raise models.ErrorObject(
|
|
393
|
+
response_data = unmarshal_json_response(models.ErrorObjectData, http_res)
|
|
394
|
+
raise models.ErrorObject(response_data, http_res)
|
|
423
395
|
if utils.match_response(http_res, "4XX", "*"):
|
|
424
396
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
425
|
-
raise models.APIError(
|
|
426
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
427
|
-
)
|
|
397
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
428
398
|
if utils.match_response(http_res, "5XX", "*"):
|
|
429
399
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
430
|
-
raise models.APIError(
|
|
431
|
-
"API error occurred", http_res.status_code, http_res_text, http_res
|
|
432
|
-
)
|
|
400
|
+
raise models.APIError("API error occurred", http_res, http_res_text)
|
|
433
401
|
|
|
434
|
-
|
|
435
|
-
http_res_text = await utils.stream_to_text_async(http_res)
|
|
436
|
-
raise models.APIError(
|
|
437
|
-
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
|
438
|
-
http_res.status_code,
|
|
439
|
-
http_res_text,
|
|
440
|
-
http_res,
|
|
441
|
-
)
|
|
402
|
+
raise models.APIError("Unexpected response received", http_res)
|
latitudesh_python_sdk/sdk.py
CHANGED
|
@@ -6,60 +6,96 @@ from .sdkconfiguration import SDKConfiguration
|
|
|
6
6
|
from .utils.logger import Logger, get_default_logger
|
|
7
7
|
from .utils.retries import RetryConfig
|
|
8
8
|
import httpx
|
|
9
|
+
import importlib
|
|
9
10
|
from latitudesh_python_sdk import models, utils
|
|
10
11
|
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
12
|
from latitudesh_python_sdk.types import OptionalNullable, UNSET
|
|
30
|
-
from
|
|
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
|
|
13
|
+
from typing import Any, Callable, Dict, List, Optional, TYPE_CHECKING, Union, cast
|
|
35
14
|
import weakref
|
|
36
15
|
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from latitudesh_python_sdk.apikeys import APIKeys
|
|
18
|
+
from latitudesh_python_sdk.billing import Billing
|
|
19
|
+
from latitudesh_python_sdk.events_sdk import EventsSDK
|
|
20
|
+
from latitudesh_python_sdk.firewalls_sdk import FirewallsSDK
|
|
21
|
+
from latitudesh_python_sdk.ipaddresses_sdk import IPAddressesSDK
|
|
22
|
+
from latitudesh_python_sdk.operatingsystems_sdk import OperatingSystemsSDK
|
|
23
|
+
from latitudesh_python_sdk.plans import Plans
|
|
24
|
+
from latitudesh_python_sdk.privatenetworks import PrivateNetworks
|
|
25
|
+
from latitudesh_python_sdk.projects_sdk import ProjectsSDK
|
|
26
|
+
from latitudesh_python_sdk.regions_sdk import RegionsSDK
|
|
27
|
+
from latitudesh_python_sdk.roles import Roles
|
|
28
|
+
from latitudesh_python_sdk.servers_sdk import ServersSDK
|
|
29
|
+
from latitudesh_python_sdk.sshkeys_sdk import SSHKeysSDK
|
|
30
|
+
from latitudesh_python_sdk.storage import Storage
|
|
31
|
+
from latitudesh_python_sdk.tags import Tags
|
|
32
|
+
from latitudesh_python_sdk.teams_sdk import TeamsSDK
|
|
33
|
+
from latitudesh_python_sdk.teamsmembers import TeamsMembers
|
|
34
|
+
from latitudesh_python_sdk.traffic_sdk import TrafficSDK
|
|
35
|
+
from latitudesh_python_sdk.userdata_sdk import UserDataSDK
|
|
36
|
+
from latitudesh_python_sdk.userprofile import UserProfile
|
|
37
|
+
from latitudesh_python_sdk.virtualmachines import VirtualMachines
|
|
38
|
+
from latitudesh_python_sdk.vpnsessions import VpnSessions
|
|
39
|
+
|
|
37
40
|
|
|
38
41
|
class Latitudesh(BaseSDK):
|
|
39
42
|
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
43
|
|
|
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:
|
|
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
|
|
44
|
+
api_keys: "APIKeys"
|
|
45
|
+
billing: "Billing"
|
|
46
|
+
events: "EventsSDK"
|
|
47
|
+
firewalls: "FirewallsSDK"
|
|
48
|
+
ip_addresses: "IPAddressesSDK"
|
|
49
|
+
teams_members: "TeamsMembers"
|
|
50
|
+
operating_systems: "OperatingSystemsSDK"
|
|
51
|
+
plans: "Plans"
|
|
52
|
+
projects: "ProjectsSDK"
|
|
53
|
+
regions: "RegionsSDK"
|
|
54
|
+
roles: "Roles"
|
|
55
|
+
servers: "ServersSDK"
|
|
56
|
+
ssh_keys: "SSHKeysSDK"
|
|
57
|
+
storage: "Storage"
|
|
58
|
+
tags: "Tags"
|
|
59
|
+
teams: "TeamsSDK"
|
|
60
|
+
traffic: "TrafficSDK"
|
|
61
|
+
user_data: "UserDataSDK"
|
|
62
|
+
user_profile: "UserProfile"
|
|
63
|
+
virtual_machines: "VirtualMachines"
|
|
64
|
+
private_networks: "PrivateNetworks"
|
|
65
|
+
vpn_sessions: "VpnSessions"
|
|
66
|
+
_sub_sdk_map = {
|
|
67
|
+
"api_keys": ("latitudesh_python_sdk.apikeys", "APIKeys"),
|
|
68
|
+
"billing": ("latitudesh_python_sdk.billing", "Billing"),
|
|
69
|
+
"events": ("latitudesh_python_sdk.events_sdk", "EventsSDK"),
|
|
70
|
+
"firewalls": ("latitudesh_python_sdk.firewalls_sdk", "FirewallsSDK"),
|
|
71
|
+
"ip_addresses": ("latitudesh_python_sdk.ipaddresses_sdk", "IPAddressesSDK"),
|
|
72
|
+
"teams_members": ("latitudesh_python_sdk.teamsmembers", "TeamsMembers"),
|
|
73
|
+
"operating_systems": (
|
|
74
|
+
"latitudesh_python_sdk.operatingsystems_sdk",
|
|
75
|
+
"OperatingSystemsSDK",
|
|
76
|
+
),
|
|
77
|
+
"plans": ("latitudesh_python_sdk.plans", "Plans"),
|
|
78
|
+
"projects": ("latitudesh_python_sdk.projects_sdk", "ProjectsSDK"),
|
|
79
|
+
"regions": ("latitudesh_python_sdk.regions_sdk", "RegionsSDK"),
|
|
80
|
+
"roles": ("latitudesh_python_sdk.roles", "Roles"),
|
|
81
|
+
"servers": ("latitudesh_python_sdk.servers_sdk", "ServersSDK"),
|
|
82
|
+
"ssh_keys": ("latitudesh_python_sdk.sshkeys_sdk", "SSHKeysSDK"),
|
|
83
|
+
"storage": ("latitudesh_python_sdk.storage", "Storage"),
|
|
84
|
+
"tags": ("latitudesh_python_sdk.tags", "Tags"),
|
|
85
|
+
"teams": ("latitudesh_python_sdk.teams_sdk", "TeamsSDK"),
|
|
86
|
+
"traffic": ("latitudesh_python_sdk.traffic_sdk", "TrafficSDK"),
|
|
87
|
+
"user_data": ("latitudesh_python_sdk.userdata_sdk", "UserDataSDK"),
|
|
88
|
+
"user_profile": ("latitudesh_python_sdk.userprofile", "UserProfile"),
|
|
89
|
+
"virtual_machines": (
|
|
90
|
+
"latitudesh_python_sdk.virtualmachines",
|
|
91
|
+
"VirtualMachines",
|
|
92
|
+
),
|
|
93
|
+
"private_networks": (
|
|
94
|
+
"latitudesh_python_sdk.privatenetworks",
|
|
95
|
+
"PrivateNetworks",
|
|
96
|
+
),
|
|
97
|
+
"vpn_sessions": ("latitudesh_python_sdk.vpnsessions", "VpnSessions"),
|
|
98
|
+
}
|
|
63
99
|
|
|
64
100
|
def __init__(
|
|
65
101
|
self,
|
|
@@ -145,6 +181,9 @@ class Latitudesh(BaseSDK):
|
|
|
145
181
|
|
|
146
182
|
hooks = SDKHooks()
|
|
147
183
|
|
|
184
|
+
# pylint: disable=protected-access
|
|
185
|
+
self.sdk_configuration.__dict__["_hooks"] = hooks
|
|
186
|
+
|
|
148
187
|
current_server_url, *_ = self.sdk_configuration.get_server_details()
|
|
149
188
|
server_url, self.sdk_configuration.client = hooks.sdk_init(
|
|
150
189
|
current_server_url, client
|
|
@@ -152,9 +191,6 @@ class Latitudesh(BaseSDK):
|
|
|
152
191
|
if current_server_url != server_url:
|
|
153
192
|
self.sdk_configuration.server_url = server_url
|
|
154
193
|
|
|
155
|
-
# pylint: disable=protected-access
|
|
156
|
-
self.sdk_configuration.__dict__["_hooks"] = hooks
|
|
157
|
-
|
|
158
194
|
weakref.finalize(
|
|
159
195
|
self,
|
|
160
196
|
close_clients,
|
|
@@ -165,31 +201,32 @@ class Latitudesh(BaseSDK):
|
|
|
165
201
|
self.sdk_configuration.async_client_supplied,
|
|
166
202
|
)
|
|
167
203
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
204
|
+
def __getattr__(self, name: str):
|
|
205
|
+
if name in self._sub_sdk_map:
|
|
206
|
+
module_path, class_name = self._sub_sdk_map[name]
|
|
207
|
+
try:
|
|
208
|
+
module = importlib.import_module(module_path)
|
|
209
|
+
klass = getattr(module, class_name)
|
|
210
|
+
instance = klass(self.sdk_configuration)
|
|
211
|
+
setattr(self, name, instance)
|
|
212
|
+
return instance
|
|
213
|
+
except ImportError as e:
|
|
214
|
+
raise AttributeError(
|
|
215
|
+
f"Failed to import module {module_path} for attribute {name}: {e}"
|
|
216
|
+
) from e
|
|
217
|
+
except AttributeError as e:
|
|
218
|
+
raise AttributeError(
|
|
219
|
+
f"Failed to find class {class_name} in module {module_path} for attribute {name}: {e}"
|
|
220
|
+
) from e
|
|
221
|
+
|
|
222
|
+
raise AttributeError(
|
|
223
|
+
f"'{type(self).__name__}' object has no attribute '{name}'"
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
def __dir__(self):
|
|
227
|
+
default_attrs = list(super().__dir__())
|
|
228
|
+
lazy_attrs = list(self._sub_sdk_map.keys())
|
|
229
|
+
return sorted(list(set(default_attrs + lazy_attrs)))
|
|
193
230
|
|
|
194
231
|
def __enter__(self):
|
|
195
232
|
return self
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
|
-
from ._hooks import SDKHooks
|
|
4
3
|
from ._version import (
|
|
5
4
|
__gen_version__,
|
|
6
5
|
__openapi_doc_version__,
|
|
@@ -42,9 +41,6 @@ class SDKConfiguration:
|
|
|
42
41
|
retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET)
|
|
43
42
|
timeout_ms: Optional[int] = None
|
|
44
43
|
|
|
45
|
-
def __post_init__(self):
|
|
46
|
-
self._hooks = SDKHooks()
|
|
47
|
-
|
|
48
44
|
def get_server_details(self) -> Tuple[str, Dict[str, str]]:
|
|
49
45
|
if self.server_url is not None and self.server_url:
|
|
50
46
|
return remove_suffix(self.server_url, "/"), {}
|
|
@@ -52,6 +48,3 @@ class SDKConfiguration:
|
|
|
52
48
|
self.server_idx = 0
|
|
53
49
|
|
|
54
50
|
return SERVERS[self.server_idx], self.server_defaults[self.server_idx]
|
|
55
|
-
|
|
56
|
-
def get_hooks(self) -> SDKHooks:
|
|
57
|
-
return self._hooks
|