latitudesh-python-sdk 1.0.0__py3-none-any.whl → 2.0.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.
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 +22 -18
- latitudesh_python_sdk/basesdk.py +12 -20
- latitudesh_python_sdk/billing.py +2 -0
- latitudesh_python_sdk/events_sdk.py +86 -5
- latitudesh_python_sdk/firewalls_sdk.py +146 -9
- latitudesh_python_sdk/httpclient.py +6 -16
- latitudesh_python_sdk/ipaddresses_sdk.py +82 -5
- latitudesh_python_sdk/models/__init__.py +2597 -1071
- 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/billing_usage.py +3 -0
- 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/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_bandwidth_plansop.py +30 -1
- latitudesh_python_sdk/models/get_eventsop.py +29 -1
- latitudesh_python_sdk/models/get_firewall_assignmentsop.py +37 -2
- latitudesh_python_sdk/models/get_ipsop.py +30 -1
- latitudesh_python_sdk/models/get_plans_operating_systemop.py +37 -2
- latitudesh_python_sdk/models/get_projectsop.py +30 -1
- latitudesh_python_sdk/models/get_regionsop.py +42 -0
- latitudesh_python_sdk/models/get_rolesop.py +37 -2
- latitudesh_python_sdk/models/get_serversop.py +30 -1
- 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_team_membersop.py +42 -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/get_virtual_networks_assignmentsop.py +33 -1
- latitudesh_python_sdk/models/get_virtual_networksop.py +30 -1
- latitudesh_python_sdk/models/list_firewallsop.py +30 -1
- 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/role.py +11 -0
- latitudesh_python_sdk/models/server_data.py +8 -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 +60 -10
- latitudesh_python_sdk/models/user_data.py +11 -0
- latitudesh_python_sdk/models/virtual_network.py +19 -1
- 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 +78 -9
- latitudesh_python_sdk/plans.py +109 -30
- latitudesh_python_sdk/privatenetworks.py +185 -36
- latitudesh_python_sdk/projects_sdk.py +113 -32
- latitudesh_python_sdk/regions_sdk.py +78 -7
- latitudesh_python_sdk/roles.py +78 -7
- latitudesh_python_sdk/sdk.py +110 -73
- latitudesh_python_sdk/sdkconfiguration.py +0 -7
- latitudesh_python_sdk/servers_sdk.py +195 -50
- latitudesh_python_sdk/{sshkeys.py → sshkeys_sdk.py} +1030 -5
- latitudesh_python_sdk/storage.py +8 -0
- latitudesh_python_sdk/tags.py +30 -22
- latitudesh_python_sdk/teams_sdk.py +6 -0
- latitudesh_python_sdk/teamsmembers.py +80 -7
- latitudesh_python_sdk/traffic_sdk.py +12 -8
- latitudesh_python_sdk/userdata_sdk.py +1029 -0
- latitudesh_python_sdk/userprofile.py +6 -0
- latitudesh_python_sdk/utils/__init__.py +131 -45
- latitudesh_python_sdk/utils/datetimes.py +23 -0
- latitudesh_python_sdk/utils/forms.py +49 -28
- latitudesh_python_sdk/utils/serializers.py +32 -3
- latitudesh_python_sdk/virtualmachines.py +36 -18
- latitudesh_python_sdk/vpnsessions.py +38 -26
- {latitudesh_python_sdk-1.0.0.dist-info → latitudesh_python_sdk-2.0.0.dist-info}/METADATA +58 -22
- {latitudesh_python_sdk-1.0.0.dist-info → latitudesh_python_sdk-2.0.0.dist-info}/RECORD +95 -73
- {latitudesh_python_sdk-1.0.0.dist-info → latitudesh_python_sdk-2.0.0.dist-info}/WHEEL +1 -1
- latitudesh_python_sdk/models/storage_plan.py +0 -36
- {latitudesh_python_sdk-1.0.0.dist-info → latitudesh_python_sdk-2.0.0.dist-info}/LICENSE +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
|
+
from jsonpath import JSONPath
|
|
4
5
|
from latitudesh_python_sdk import models, utils
|
|
5
6
|
from latitudesh_python_sdk._hooks import HookContext
|
|
6
|
-
from latitudesh_python_sdk.types import
|
|
7
|
+
from latitudesh_python_sdk.types import OptionalNullable, UNSET
|
|
7
8
|
from latitudesh_python_sdk.utils import get_security_from_env
|
|
8
|
-
from typing import Any, Mapping, Optional, Union
|
|
9
|
+
from typing import Any, Dict, List, Mapping, Optional, Union
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class ProjectsSDK(BaseSDK):
|
|
@@ -19,11 +20,13 @@ class ProjectsSDK(BaseSDK):
|
|
|
19
20
|
filter_environment: Optional[str] = None,
|
|
20
21
|
filter_tags: Optional[str] = None,
|
|
21
22
|
extra_fields_projects: Optional[str] = None,
|
|
23
|
+
page_size: Optional[int] = 20,
|
|
24
|
+
page_number: Optional[int] = 1,
|
|
22
25
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
23
26
|
server_url: Optional[str] = None,
|
|
24
27
|
timeout_ms: Optional[int] = None,
|
|
25
28
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
26
|
-
) -> models.
|
|
29
|
+
) -> Optional[models.GetProjectsResponse]:
|
|
27
30
|
r"""List all Projects
|
|
28
31
|
|
|
29
32
|
Returns a list of all projects for the current team
|
|
@@ -36,6 +39,8 @@ class ProjectsSDK(BaseSDK):
|
|
|
36
39
|
:param filter_environment: The environment to filter by
|
|
37
40
|
:param filter_tags: The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return projects with `tag_1` AND `tag_2`
|
|
38
41
|
:param extra_fields_projects: The `last_renewal_date` and `next_renewal_date` are provided as extra attributes that show previous and future billing cycle dates. To request it, just set `extra_fields[projects]=last_renewal_date,next_renewal_date` in the query string.
|
|
42
|
+
:param page_size: Number of items to return per page
|
|
43
|
+
:param page_number: Page number to return (starts at 1)
|
|
39
44
|
:param retries: Override the default retry configuration for this method
|
|
40
45
|
:param server_url: Override the default server URL for this method
|
|
41
46
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -59,6 +64,8 @@ class ProjectsSDK(BaseSDK):
|
|
|
59
64
|
filter_environment=filter_environment,
|
|
60
65
|
filter_tags=filter_tags,
|
|
61
66
|
extra_fields_projects=extra_fields_projects,
|
|
67
|
+
page_size=page_size,
|
|
68
|
+
page_number=page_number,
|
|
62
69
|
)
|
|
63
70
|
|
|
64
71
|
req = self._build_request(
|
|
@@ -87,6 +94,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
87
94
|
|
|
88
95
|
http_res = self.do_request(
|
|
89
96
|
hook_ctx=HookContext(
|
|
97
|
+
config=self.sdk_configuration,
|
|
90
98
|
base_url=base_url or "",
|
|
91
99
|
operation_id="get-projects",
|
|
92
100
|
oauth2_scopes=[],
|
|
@@ -99,8 +107,38 @@ class ProjectsSDK(BaseSDK):
|
|
|
99
107
|
retry_config=retry_config,
|
|
100
108
|
)
|
|
101
109
|
|
|
110
|
+
def next_func() -> Optional[models.GetProjectsResponse]:
|
|
111
|
+
body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
|
|
112
|
+
page = request.page_number if not request.page_number is None else 1
|
|
113
|
+
next_page = page + 1
|
|
114
|
+
|
|
115
|
+
if not http_res.text:
|
|
116
|
+
return None
|
|
117
|
+
results = JSONPath("$.data").parse(body)
|
|
118
|
+
if len(results) == 0 or len(results[0]) == 0:
|
|
119
|
+
return None
|
|
120
|
+
limit = request.page_size if not request.page_size is None else 20
|
|
121
|
+
if len(results[0]) < limit:
|
|
122
|
+
return None
|
|
123
|
+
|
|
124
|
+
return self.list(
|
|
125
|
+
filter_name=filter_name,
|
|
126
|
+
filter_slug=filter_slug,
|
|
127
|
+
filter_description=filter_description,
|
|
128
|
+
filter_billing_type=filter_billing_type,
|
|
129
|
+
filter_environment=filter_environment,
|
|
130
|
+
filter_tags=filter_tags,
|
|
131
|
+
extra_fields_projects=extra_fields_projects,
|
|
132
|
+
page_size=page_size,
|
|
133
|
+
page_number=next_page,
|
|
134
|
+
retries=retries,
|
|
135
|
+
)
|
|
136
|
+
|
|
102
137
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
103
|
-
return
|
|
138
|
+
return models.GetProjectsResponse(
|
|
139
|
+
result=utils.unmarshal_json(http_res.text, models.Projects),
|
|
140
|
+
next=next_func,
|
|
141
|
+
)
|
|
104
142
|
if utils.match_response(http_res, "4XX", "*"):
|
|
105
143
|
http_res_text = utils.stream_to_text(http_res)
|
|
106
144
|
raise models.APIError(
|
|
@@ -131,11 +169,13 @@ class ProjectsSDK(BaseSDK):
|
|
|
131
169
|
filter_environment: Optional[str] = None,
|
|
132
170
|
filter_tags: Optional[str] = None,
|
|
133
171
|
extra_fields_projects: Optional[str] = None,
|
|
172
|
+
page_size: Optional[int] = 20,
|
|
173
|
+
page_number: Optional[int] = 1,
|
|
134
174
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
135
175
|
server_url: Optional[str] = None,
|
|
136
176
|
timeout_ms: Optional[int] = None,
|
|
137
177
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
138
|
-
) -> models.
|
|
178
|
+
) -> Optional[models.GetProjectsResponse]:
|
|
139
179
|
r"""List all Projects
|
|
140
180
|
|
|
141
181
|
Returns a list of all projects for the current team
|
|
@@ -148,6 +188,8 @@ class ProjectsSDK(BaseSDK):
|
|
|
148
188
|
:param filter_environment: The environment to filter by
|
|
149
189
|
:param filter_tags: The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return projects with `tag_1` AND `tag_2`
|
|
150
190
|
:param extra_fields_projects: The `last_renewal_date` and `next_renewal_date` are provided as extra attributes that show previous and future billing cycle dates. To request it, just set `extra_fields[projects]=last_renewal_date,next_renewal_date` in the query string.
|
|
191
|
+
:param page_size: Number of items to return per page
|
|
192
|
+
:param page_number: Page number to return (starts at 1)
|
|
151
193
|
:param retries: Override the default retry configuration for this method
|
|
152
194
|
:param server_url: Override the default server URL for this method
|
|
153
195
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -171,6 +213,8 @@ class ProjectsSDK(BaseSDK):
|
|
|
171
213
|
filter_environment=filter_environment,
|
|
172
214
|
filter_tags=filter_tags,
|
|
173
215
|
extra_fields_projects=extra_fields_projects,
|
|
216
|
+
page_size=page_size,
|
|
217
|
+
page_number=page_number,
|
|
174
218
|
)
|
|
175
219
|
|
|
176
220
|
req = self._build_request_async(
|
|
@@ -199,6 +243,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
199
243
|
|
|
200
244
|
http_res = await self.do_request_async(
|
|
201
245
|
hook_ctx=HookContext(
|
|
246
|
+
config=self.sdk_configuration,
|
|
202
247
|
base_url=base_url or "",
|
|
203
248
|
operation_id="get-projects",
|
|
204
249
|
oauth2_scopes=[],
|
|
@@ -211,8 +256,38 @@ class ProjectsSDK(BaseSDK):
|
|
|
211
256
|
retry_config=retry_config,
|
|
212
257
|
)
|
|
213
258
|
|
|
259
|
+
def next_func() -> Optional[models.GetProjectsResponse]:
|
|
260
|
+
body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
|
|
261
|
+
page = request.page_number if not request.page_number is None else 1
|
|
262
|
+
next_page = page + 1
|
|
263
|
+
|
|
264
|
+
if not http_res.text:
|
|
265
|
+
return None
|
|
266
|
+
results = JSONPath("$.data").parse(body)
|
|
267
|
+
if len(results) == 0 or len(results[0]) == 0:
|
|
268
|
+
return None
|
|
269
|
+
limit = request.page_size if not request.page_size is None else 20
|
|
270
|
+
if len(results[0]) < limit:
|
|
271
|
+
return None
|
|
272
|
+
|
|
273
|
+
return self.list(
|
|
274
|
+
filter_name=filter_name,
|
|
275
|
+
filter_slug=filter_slug,
|
|
276
|
+
filter_description=filter_description,
|
|
277
|
+
filter_billing_type=filter_billing_type,
|
|
278
|
+
filter_environment=filter_environment,
|
|
279
|
+
filter_tags=filter_tags,
|
|
280
|
+
extra_fields_projects=extra_fields_projects,
|
|
281
|
+
page_size=page_size,
|
|
282
|
+
page_number=next_page,
|
|
283
|
+
retries=retries,
|
|
284
|
+
)
|
|
285
|
+
|
|
214
286
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
215
|
-
return
|
|
287
|
+
return models.GetProjectsResponse(
|
|
288
|
+
result=utils.unmarshal_json(http_res.text, models.Projects),
|
|
289
|
+
next=next_func,
|
|
290
|
+
)
|
|
216
291
|
if utils.match_response(http_res, "4XX", "*"):
|
|
217
292
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
218
293
|
raise models.APIError(
|
|
@@ -236,10 +311,12 @@ class ProjectsSDK(BaseSDK):
|
|
|
236
311
|
def create(
|
|
237
312
|
self,
|
|
238
313
|
*,
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
314
|
+
data: Optional[
|
|
315
|
+
Union[
|
|
316
|
+
models.CreateProjectProjectsData,
|
|
317
|
+
models.CreateProjectProjectsDataTypedDict,
|
|
318
|
+
]
|
|
319
|
+
] = None,
|
|
243
320
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
244
321
|
server_url: Optional[str] = None,
|
|
245
322
|
timeout_ms: Optional[int] = None,
|
|
@@ -247,7 +324,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
247
324
|
) -> models.CreateProjectResponseBody:
|
|
248
325
|
r"""Create a Project
|
|
249
326
|
|
|
250
|
-
:param
|
|
327
|
+
:param data:
|
|
251
328
|
:param retries: Override the default retry configuration for this method
|
|
252
329
|
:param server_url: Override the default server URL for this method
|
|
253
330
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -263,9 +340,11 @@ class ProjectsSDK(BaseSDK):
|
|
|
263
340
|
else:
|
|
264
341
|
base_url = self._get_url(base_url, url_variables)
|
|
265
342
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
343
|
+
request = models.CreateProjectProjectsRequestBody(
|
|
344
|
+
data=utils.get_pydantic_model(
|
|
345
|
+
data, Optional[models.CreateProjectProjectsData]
|
|
346
|
+
),
|
|
347
|
+
)
|
|
269
348
|
|
|
270
349
|
req = self._build_request(
|
|
271
350
|
method="POST",
|
|
@@ -281,11 +360,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
281
360
|
http_headers=http_headers,
|
|
282
361
|
security=self.sdk_configuration.security,
|
|
283
362
|
get_serialized_body=lambda: utils.serialize_request_body(
|
|
284
|
-
request,
|
|
285
|
-
False,
|
|
286
|
-
True,
|
|
287
|
-
"json",
|
|
288
|
-
Optional[models.CreateProjectProjectsRequestBody],
|
|
363
|
+
request, False, False, "json", models.CreateProjectProjectsRequestBody
|
|
289
364
|
),
|
|
290
365
|
timeout_ms=timeout_ms,
|
|
291
366
|
)
|
|
@@ -300,6 +375,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
300
375
|
|
|
301
376
|
http_res = self.do_request(
|
|
302
377
|
hook_ctx=HookContext(
|
|
378
|
+
config=self.sdk_configuration,
|
|
303
379
|
base_url=base_url or "",
|
|
304
380
|
operation_id="create-project",
|
|
305
381
|
oauth2_scopes=[],
|
|
@@ -343,10 +419,12 @@ class ProjectsSDK(BaseSDK):
|
|
|
343
419
|
async def create_async(
|
|
344
420
|
self,
|
|
345
421
|
*,
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
422
|
+
data: Optional[
|
|
423
|
+
Union[
|
|
424
|
+
models.CreateProjectProjectsData,
|
|
425
|
+
models.CreateProjectProjectsDataTypedDict,
|
|
426
|
+
]
|
|
427
|
+
] = None,
|
|
350
428
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
351
429
|
server_url: Optional[str] = None,
|
|
352
430
|
timeout_ms: Optional[int] = None,
|
|
@@ -354,7 +432,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
354
432
|
) -> models.CreateProjectResponseBody:
|
|
355
433
|
r"""Create a Project
|
|
356
434
|
|
|
357
|
-
:param
|
|
435
|
+
:param data:
|
|
358
436
|
:param retries: Override the default retry configuration for this method
|
|
359
437
|
:param server_url: Override the default server URL for this method
|
|
360
438
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -370,9 +448,11 @@ class ProjectsSDK(BaseSDK):
|
|
|
370
448
|
else:
|
|
371
449
|
base_url = self._get_url(base_url, url_variables)
|
|
372
450
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
451
|
+
request = models.CreateProjectProjectsRequestBody(
|
|
452
|
+
data=utils.get_pydantic_model(
|
|
453
|
+
data, Optional[models.CreateProjectProjectsData]
|
|
454
|
+
),
|
|
455
|
+
)
|
|
376
456
|
|
|
377
457
|
req = self._build_request_async(
|
|
378
458
|
method="POST",
|
|
@@ -388,11 +468,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
388
468
|
http_headers=http_headers,
|
|
389
469
|
security=self.sdk_configuration.security,
|
|
390
470
|
get_serialized_body=lambda: utils.serialize_request_body(
|
|
391
|
-
request,
|
|
392
|
-
False,
|
|
393
|
-
True,
|
|
394
|
-
"json",
|
|
395
|
-
Optional[models.CreateProjectProjectsRequestBody],
|
|
471
|
+
request, False, False, "json", models.CreateProjectProjectsRequestBody
|
|
396
472
|
),
|
|
397
473
|
timeout_ms=timeout_ms,
|
|
398
474
|
)
|
|
@@ -407,6 +483,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
407
483
|
|
|
408
484
|
http_res = await self.do_request_async(
|
|
409
485
|
hook_ctx=HookContext(
|
|
486
|
+
config=self.sdk_configuration,
|
|
410
487
|
base_url=base_url or "",
|
|
411
488
|
operation_id="create-project",
|
|
412
489
|
oauth2_scopes=[],
|
|
@@ -518,6 +595,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
518
595
|
|
|
519
596
|
http_res = self.do_request(
|
|
520
597
|
hook_ctx=HookContext(
|
|
598
|
+
config=self.sdk_configuration,
|
|
521
599
|
base_url=base_url or "",
|
|
522
600
|
operation_id="update-project",
|
|
523
601
|
oauth2_scopes=[],
|
|
@@ -629,6 +707,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
629
707
|
|
|
630
708
|
http_res = await self.do_request_async(
|
|
631
709
|
hook_ctx=HookContext(
|
|
710
|
+
config=self.sdk_configuration,
|
|
632
711
|
base_url=base_url or "",
|
|
633
712
|
operation_id="update-project",
|
|
634
713
|
oauth2_scopes=[],
|
|
@@ -726,6 +805,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
726
805
|
|
|
727
806
|
http_res = self.do_request(
|
|
728
807
|
hook_ctx=HookContext(
|
|
808
|
+
config=self.sdk_configuration,
|
|
729
809
|
base_url=base_url or "",
|
|
730
810
|
operation_id="delete-project",
|
|
731
811
|
oauth2_scopes=[],
|
|
@@ -823,6 +903,7 @@ class ProjectsSDK(BaseSDK):
|
|
|
823
903
|
|
|
824
904
|
http_res = await self.do_request_async(
|
|
825
905
|
hook_ctx=HookContext(
|
|
906
|
+
config=self.sdk_configuration,
|
|
826
907
|
base_url=base_url or "",
|
|
827
908
|
operation_id="delete-project",
|
|
828
909
|
oauth2_scopes=[],
|
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
|
+
from jsonpath import JSONPath
|
|
4
5
|
from latitudesh_python_sdk import models, utils
|
|
5
6
|
from latitudesh_python_sdk._hooks import HookContext
|
|
6
7
|
from latitudesh_python_sdk.types import OptionalNullable, UNSET
|
|
7
8
|
from latitudesh_python_sdk.utils import get_security_from_env
|
|
8
|
-
from typing import Any, Mapping, Optional
|
|
9
|
+
from typing import Any, Dict, List, Mapping, Optional, Union
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class RegionsSDK(BaseSDK):
|
|
12
13
|
def list(
|
|
13
14
|
self,
|
|
14
15
|
*,
|
|
16
|
+
page_size: Optional[int] = 20,
|
|
17
|
+
page_number: Optional[int] = 1,
|
|
15
18
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
16
19
|
server_url: Optional[str] = None,
|
|
17
20
|
timeout_ms: Optional[int] = None,
|
|
18
21
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
19
|
-
) -> models.
|
|
22
|
+
) -> Optional[models.GetRegionsResponse]:
|
|
20
23
|
r"""List all Regions
|
|
21
24
|
|
|
22
25
|
Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
|
|
29
|
+
:param page_size: Number of items to return per page
|
|
30
|
+
:param page_number: Page number to return (starts at 1)
|
|
26
31
|
:param retries: Override the default retry configuration for this method
|
|
27
32
|
:param server_url: Override the default server URL for this method
|
|
28
33
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -37,12 +42,18 @@ class RegionsSDK(BaseSDK):
|
|
|
37
42
|
base_url = server_url
|
|
38
43
|
else:
|
|
39
44
|
base_url = self._get_url(base_url, url_variables)
|
|
45
|
+
|
|
46
|
+
request = models.GetRegionsRequest(
|
|
47
|
+
page_size=page_size,
|
|
48
|
+
page_number=page_number,
|
|
49
|
+
)
|
|
50
|
+
|
|
40
51
|
req = self._build_request(
|
|
41
52
|
method="GET",
|
|
42
53
|
path="/regions",
|
|
43
54
|
base_url=base_url,
|
|
44
55
|
url_variables=url_variables,
|
|
45
|
-
request=
|
|
56
|
+
request=request,
|
|
46
57
|
request_body_required=False,
|
|
47
58
|
request_has_path_params=False,
|
|
48
59
|
request_has_query_params=True,
|
|
@@ -63,6 +74,7 @@ class RegionsSDK(BaseSDK):
|
|
|
63
74
|
|
|
64
75
|
http_res = self.do_request(
|
|
65
76
|
hook_ctx=HookContext(
|
|
77
|
+
config=self.sdk_configuration,
|
|
66
78
|
base_url=base_url or "",
|
|
67
79
|
operation_id="get-regions",
|
|
68
80
|
oauth2_scopes=[],
|
|
@@ -75,8 +87,31 @@ class RegionsSDK(BaseSDK):
|
|
|
75
87
|
retry_config=retry_config,
|
|
76
88
|
)
|
|
77
89
|
|
|
90
|
+
def next_func() -> Optional[models.GetRegionsResponse]:
|
|
91
|
+
body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
|
|
92
|
+
page = request.page_number if not request.page_number is None else 1
|
|
93
|
+
next_page = page + 1
|
|
94
|
+
|
|
95
|
+
if not http_res.text:
|
|
96
|
+
return None
|
|
97
|
+
results = JSONPath("$.data").parse(body)
|
|
98
|
+
if len(results) == 0 or len(results[0]) == 0:
|
|
99
|
+
return None
|
|
100
|
+
limit = request.page_size if not request.page_size is None else 20
|
|
101
|
+
if len(results[0]) < limit:
|
|
102
|
+
return None
|
|
103
|
+
|
|
104
|
+
return self.list(
|
|
105
|
+
page_size=page_size,
|
|
106
|
+
page_number=next_page,
|
|
107
|
+
retries=retries,
|
|
108
|
+
)
|
|
109
|
+
|
|
78
110
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
79
|
-
return
|
|
111
|
+
return models.GetRegionsResponse(
|
|
112
|
+
result=utils.unmarshal_json(http_res.text, models.Regions),
|
|
113
|
+
next=next_func,
|
|
114
|
+
)
|
|
80
115
|
if utils.match_response(http_res, "4XX", "*"):
|
|
81
116
|
http_res_text = utils.stream_to_text(http_res)
|
|
82
117
|
raise models.APIError(
|
|
@@ -100,17 +135,21 @@ class RegionsSDK(BaseSDK):
|
|
|
100
135
|
async def list_async(
|
|
101
136
|
self,
|
|
102
137
|
*,
|
|
138
|
+
page_size: Optional[int] = 20,
|
|
139
|
+
page_number: Optional[int] = 1,
|
|
103
140
|
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
104
141
|
server_url: Optional[str] = None,
|
|
105
142
|
timeout_ms: Optional[int] = None,
|
|
106
143
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
107
|
-
) -> models.
|
|
144
|
+
) -> Optional[models.GetRegionsResponse]:
|
|
108
145
|
r"""List all Regions
|
|
109
146
|
|
|
110
147
|
Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).
|
|
111
148
|
|
|
112
149
|
|
|
113
150
|
|
|
151
|
+
:param page_size: Number of items to return per page
|
|
152
|
+
:param page_number: Page number to return (starts at 1)
|
|
114
153
|
:param retries: Override the default retry configuration for this method
|
|
115
154
|
:param server_url: Override the default server URL for this method
|
|
116
155
|
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
@@ -125,12 +164,18 @@ class RegionsSDK(BaseSDK):
|
|
|
125
164
|
base_url = server_url
|
|
126
165
|
else:
|
|
127
166
|
base_url = self._get_url(base_url, url_variables)
|
|
167
|
+
|
|
168
|
+
request = models.GetRegionsRequest(
|
|
169
|
+
page_size=page_size,
|
|
170
|
+
page_number=page_number,
|
|
171
|
+
)
|
|
172
|
+
|
|
128
173
|
req = self._build_request_async(
|
|
129
174
|
method="GET",
|
|
130
175
|
path="/regions",
|
|
131
176
|
base_url=base_url,
|
|
132
177
|
url_variables=url_variables,
|
|
133
|
-
request=
|
|
178
|
+
request=request,
|
|
134
179
|
request_body_required=False,
|
|
135
180
|
request_has_path_params=False,
|
|
136
181
|
request_has_query_params=True,
|
|
@@ -151,6 +196,7 @@ class RegionsSDK(BaseSDK):
|
|
|
151
196
|
|
|
152
197
|
http_res = await self.do_request_async(
|
|
153
198
|
hook_ctx=HookContext(
|
|
199
|
+
config=self.sdk_configuration,
|
|
154
200
|
base_url=base_url or "",
|
|
155
201
|
operation_id="get-regions",
|
|
156
202
|
oauth2_scopes=[],
|
|
@@ -163,8 +209,31 @@ class RegionsSDK(BaseSDK):
|
|
|
163
209
|
retry_config=retry_config,
|
|
164
210
|
)
|
|
165
211
|
|
|
212
|
+
def next_func() -> Optional[models.GetRegionsResponse]:
|
|
213
|
+
body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
|
|
214
|
+
page = request.page_number if not request.page_number is None else 1
|
|
215
|
+
next_page = page + 1
|
|
216
|
+
|
|
217
|
+
if not http_res.text:
|
|
218
|
+
return None
|
|
219
|
+
results = JSONPath("$.data").parse(body)
|
|
220
|
+
if len(results) == 0 or len(results[0]) == 0:
|
|
221
|
+
return None
|
|
222
|
+
limit = request.page_size if not request.page_size is None else 20
|
|
223
|
+
if len(results[0]) < limit:
|
|
224
|
+
return None
|
|
225
|
+
|
|
226
|
+
return self.list(
|
|
227
|
+
page_size=page_size,
|
|
228
|
+
page_number=next_page,
|
|
229
|
+
retries=retries,
|
|
230
|
+
)
|
|
231
|
+
|
|
166
232
|
if utils.match_response(http_res, "200", "application/vnd.api+json"):
|
|
167
|
-
return
|
|
233
|
+
return models.GetRegionsResponse(
|
|
234
|
+
result=utils.unmarshal_json(http_res.text, models.Regions),
|
|
235
|
+
next=next_func,
|
|
236
|
+
)
|
|
168
237
|
if utils.match_response(http_res, "4XX", "*"):
|
|
169
238
|
http_res_text = await utils.stream_to_text_async(http_res)
|
|
170
239
|
raise models.APIError(
|
|
@@ -242,6 +311,7 @@ class RegionsSDK(BaseSDK):
|
|
|
242
311
|
|
|
243
312
|
http_res = self.do_request(
|
|
244
313
|
hook_ctx=HookContext(
|
|
314
|
+
config=self.sdk_configuration,
|
|
245
315
|
base_url=base_url or "",
|
|
246
316
|
operation_id="get-region",
|
|
247
317
|
oauth2_scopes=[],
|
|
@@ -337,6 +407,7 @@ class RegionsSDK(BaseSDK):
|
|
|
337
407
|
|
|
338
408
|
http_res = await self.do_request_async(
|
|
339
409
|
hook_ctx=HookContext(
|
|
410
|
+
config=self.sdk_configuration,
|
|
340
411
|
base_url=base_url or "",
|
|
341
412
|
operation_id="get-region",
|
|
342
413
|
oauth2_scopes=[],
|