gcore 0.4.0__py3-none-any.whl → 0.5.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 gcore might be problematic. Click here for more details.
- gcore/_base_client.py +9 -2
- gcore/_client.py +9 -0
- gcore/_constants.py +2 -2
- gcore/_models.py +8 -5
- gcore/_version.py +1 -1
- gcore/pagination.py +192 -1
- gcore/resources/__init__.py +14 -0
- gcore/resources/cloud/baremetal/servers.py +2 -2
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +2 -2
- gcore/resources/cloud/inference/deployments/deployments.py +66 -33
- gcore/resources/cloud/inference/deployments/logs.py +7 -7
- gcore/resources/cloud/inference/inference.py +5 -5
- gcore/resources/cloud/inference/models.py +16 -15
- gcore/resources/cloud/inference/registry_credentials.py +16 -16
- gcore/resources/cloud/inference/secrets.py +4 -5
- gcore/resources/cloud/instances/instances.py +2 -2
- gcore/resources/cloud/secrets.py +14 -224
- gcore/resources/cloud/tasks.py +30 -28
- gcore/resources/fastedge/__init__.py +103 -0
- gcore/resources/fastedge/apps/__init__.py +33 -0
- gcore/resources/fastedge/apps/apps.py +932 -0
- gcore/resources/fastedge/apps/logs.py +248 -0
- gcore/resources/fastedge/binaries.py +286 -0
- gcore/resources/fastedge/fastedge.py +327 -0
- gcore/resources/fastedge/kv_stores.py +523 -0
- gcore/resources/fastedge/secrets.py +687 -0
- gcore/resources/fastedge/statistics.py +347 -0
- gcore/resources/fastedge/templates.py +652 -0
- gcore/types/cloud/__init__.py +2 -28
- gcore/types/cloud/baremetal/server_create_params.py +1 -1
- gcore/types/cloud/gpu_baremetal_cluster_create_params.py +1 -1
- gcore/types/cloud/inference/__init__.py +12 -8
- gcore/types/cloud/inference/deployment_create_params.py +224 -7
- gcore/types/cloud/inference/deployment_update_params.py +24 -3
- gcore/types/cloud/inference/deployments/__init__.py +1 -0
- gcore/types/cloud/inference/{inference_log.py → deployments/inference_deployment_log.py} +3 -3
- gcore/types/cloud/inference/inference_deployment.py +266 -0
- gcore/types/cloud/inference/{inference_apikey_secret.py → inference_deployment_api_key.py} +2 -2
- gcore/types/cloud/inference/{mlcatalog_model_card.py → inference_model.py} +2 -2
- gcore/types/cloud/inference/{inference_registry_credential.py → inference_registry_credentials.py} +2 -2
- gcore/types/cloud/inference/{inference_registry_credential_full.py → inference_registry_credentials_create.py} +2 -2
- gcore/types/cloud/inference/inference_secret.py +10 -3
- gcore/types/cloud/inference/model_list_params.py +2 -4
- gcore/types/cloud/{container_probe.py → inference/probe.py} +9 -9
- gcore/types/cloud/{container_probe_config.py → inference/probe_config.py} +5 -5
- gcore/types/cloud/{container_probe_exec.py → inference/probe_exec.py} +3 -3
- gcore/types/cloud/{container_probe_http_get.py → inference/probe_http_get.py} +3 -3
- gcore/types/cloud/{container_probe_tcp_socket.py → inference/probe_tcp_socket.py} +3 -3
- gcore/types/cloud/inference/secret_create_params.py +10 -4
- gcore/types/cloud/inference/secret_replace_params.py +10 -4
- gcore/types/cloud/{region_capacity.py → inference_region_capacity.py} +10 -3
- gcore/types/cloud/{region_capacity_list.py → inference_region_capacity_list.py} +4 -4
- gcore/types/cloud/instance_create_params.py +1 -1
- gcore/types/cloud/task_list_params.py +15 -14
- gcore/types/fastedge/__init__.py +48 -0
- gcore/types/fastedge/app.py +81 -0
- gcore/types/fastedge/app_create_params.py +56 -0
- gcore/types/fastedge/app_list_params.py +50 -0
- gcore/types/fastedge/app_param.py +56 -0
- gcore/types/fastedge/app_replace_params.py +17 -0
- gcore/types/fastedge/app_short.py +60 -0
- gcore/types/fastedge/app_update_params.py +56 -0
- gcore/types/fastedge/apps/__init__.py +6 -0
- gcore/types/fastedge/apps/log.py +28 -0
- gcore/types/fastedge/apps/log_list_params.py +37 -0
- gcore/types/fastedge/binary.py +40 -0
- gcore/types/fastedge/binary_list_response.py +12 -0
- gcore/types/fastedge/binary_short.py +32 -0
- gcore/types/fastedge/call_status.py +24 -0
- gcore/types/fastedge/client.py +57 -0
- gcore/types/fastedge/duration_stats.py +30 -0
- gcore/types/fastedge/kv_store.py +33 -0
- gcore/types/fastedge/kv_store_create_params.py +23 -0
- gcore/types/fastedge/kv_store_get_response.py +10 -0
- gcore/types/fastedge/kv_store_list_params.py +12 -0
- gcore/types/fastedge/kv_store_list_response.py +15 -0
- gcore/types/fastedge/kv_store_replace_params.py +23 -0
- gcore/types/fastedge/kv_store_short.py +19 -0
- gcore/types/fastedge/kv_store_stats.py +26 -0
- gcore/types/fastedge/secret.py +29 -0
- gcore/types/fastedge/secret_create_params.py +27 -0
- gcore/types/fastedge/secret_create_response.py +12 -0
- gcore/types/fastedge/secret_delete_params.py +12 -0
- gcore/types/fastedge/secret_list_params.py +15 -0
- gcore/types/{cloud → fastedge}/secret_list_response.py +2 -6
- gcore/types/fastedge/secret_replace_params.py +27 -0
- gcore/types/fastedge/secret_short.py +21 -0
- gcore/types/fastedge/secret_update_params.py +27 -0
- gcore/types/fastedge/statistic_get_call_series_params.py +28 -0
- gcore/types/fastedge/statistic_get_call_series_response.py +12 -0
- gcore/types/fastedge/statistic_get_duration_series_params.py +28 -0
- gcore/types/fastedge/statistic_get_duration_series_response.py +12 -0
- gcore/types/fastedge/template.py +31 -0
- gcore/types/fastedge/template_create_params.py +30 -0
- gcore/types/fastedge/template_delete_params.py +12 -0
- gcore/types/fastedge/template_list_params.py +25 -0
- gcore/types/fastedge/template_parameter.py +22 -0
- gcore/types/fastedge/template_parameter_param.py +21 -0
- gcore/types/fastedge/template_replace_params.py +30 -0
- gcore/types/fastedge/template_short.py +27 -0
- {gcore-0.4.0.dist-info → gcore-0.5.0.dist-info}/METADATA +7 -5
- {gcore-0.4.0.dist-info → gcore-0.5.0.dist-info}/RECORD +104 -69
- gcore/types/cloud/aws_iam_data.py +0 -13
- gcore/types/cloud/aws_iam_data_param.py +0 -15
- gcore/types/cloud/capacity.py +0 -13
- gcore/types/cloud/container_probe_config_create_param.py +0 -17
- gcore/types/cloud/container_probe_create_param.py +0 -38
- gcore/types/cloud/container_probe_exec_create_param.py +0 -13
- gcore/types/cloud/container_probe_http_get_create_param.py +0 -25
- gcore/types/cloud/container_probe_tcp_socket_create_param.py +0 -12
- gcore/types/cloud/container_scale.py +0 -25
- gcore/types/cloud/container_scale_trigger_rate.py +0 -13
- gcore/types/cloud/container_scale_trigger_sqs.py +0 -33
- gcore/types/cloud/container_scale_trigger_threshold.py +0 -10
- gcore/types/cloud/container_scale_triggers.py +0 -36
- gcore/types/cloud/deploy_status.py +0 -13
- gcore/types/cloud/inference/container.py +0 -26
- gcore/types/cloud/inference/inference.py +0 -95
- gcore/types/cloud/inference/mlcatalog_order_by_choices.py +0 -7
- gcore/types/cloud/inference_probes.py +0 -19
- gcore/types/cloud/ingress_opts_out.py +0 -16
- gcore/types/cloud/ingress_opts_param.py +0 -18
- gcore/types/cloud/secret_create_params.py +0 -66
- {gcore-0.4.0.dist-info → gcore-0.5.0.dist-info}/WHEEL +0 -0
- {gcore-0.4.0.dist-info → gcore-0.5.0.dist-info}/licenses/LICENSE +0 -0
gcore/_base_client.py
CHANGED
|
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
529
529
|
# work around https://github.com/encode/httpx/discussions/2880
|
|
530
530
|
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
|
|
531
531
|
|
|
532
|
+
is_body_allowed = options.method.lower() != "get"
|
|
533
|
+
|
|
534
|
+
if is_body_allowed:
|
|
535
|
+
kwargs["json"] = json_data if is_given(json_data) else None
|
|
536
|
+
kwargs["files"] = files
|
|
537
|
+
else:
|
|
538
|
+
headers.pop("Content-Type", None)
|
|
539
|
+
kwargs.pop("data", None)
|
|
540
|
+
|
|
532
541
|
# TODO: report this error to httpx
|
|
533
542
|
return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
|
|
534
543
|
headers=headers,
|
|
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
540
549
|
# so that passing a `TypedDict` doesn't cause an error.
|
|
541
550
|
# https://github.com/microsoft/pyright/issues/3526#event-6715453066
|
|
542
551
|
params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
|
|
543
|
-
json=json_data if is_given(json_data) else None,
|
|
544
|
-
files=files,
|
|
545
552
|
**kwargs,
|
|
546
553
|
)
|
|
547
554
|
|
gcore/_client.py
CHANGED
|
@@ -31,6 +31,7 @@ from ._base_client import (
|
|
|
31
31
|
from .resources.iam import iam
|
|
32
32
|
from .resources.waap import waap
|
|
33
33
|
from .resources.cloud import cloud
|
|
34
|
+
from .resources.fastedge import fastedge
|
|
34
35
|
|
|
35
36
|
__all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Gcore", "AsyncGcore", "Client", "AsyncClient"]
|
|
36
37
|
|
|
@@ -39,6 +40,7 @@ class Gcore(SyncAPIClient):
|
|
|
39
40
|
cloud: cloud.CloudResource
|
|
40
41
|
waap: waap.WaapResource
|
|
41
42
|
iam: iam.IamResource
|
|
43
|
+
fastedge: fastedge.FastedgeResource
|
|
42
44
|
with_raw_response: GcoreWithRawResponse
|
|
43
45
|
with_streaming_response: GcoreWithStreamedResponse
|
|
44
46
|
|
|
@@ -120,6 +122,7 @@ class Gcore(SyncAPIClient):
|
|
|
120
122
|
self.cloud = cloud.CloudResource(self)
|
|
121
123
|
self.waap = waap.WaapResource(self)
|
|
122
124
|
self.iam = iam.IamResource(self)
|
|
125
|
+
self.fastedge = fastedge.FastedgeResource(self)
|
|
123
126
|
self.with_raw_response = GcoreWithRawResponse(self)
|
|
124
127
|
self.with_streaming_response = GcoreWithStreamedResponse(self)
|
|
125
128
|
|
|
@@ -256,6 +259,7 @@ class AsyncGcore(AsyncAPIClient):
|
|
|
256
259
|
cloud: cloud.AsyncCloudResource
|
|
257
260
|
waap: waap.AsyncWaapResource
|
|
258
261
|
iam: iam.AsyncIamResource
|
|
262
|
+
fastedge: fastedge.AsyncFastedgeResource
|
|
259
263
|
with_raw_response: AsyncGcoreWithRawResponse
|
|
260
264
|
with_streaming_response: AsyncGcoreWithStreamedResponse
|
|
261
265
|
|
|
@@ -337,6 +341,7 @@ class AsyncGcore(AsyncAPIClient):
|
|
|
337
341
|
self.cloud = cloud.AsyncCloudResource(self)
|
|
338
342
|
self.waap = waap.AsyncWaapResource(self)
|
|
339
343
|
self.iam = iam.AsyncIamResource(self)
|
|
344
|
+
self.fastedge = fastedge.AsyncFastedgeResource(self)
|
|
340
345
|
self.with_raw_response = AsyncGcoreWithRawResponse(self)
|
|
341
346
|
self.with_streaming_response = AsyncGcoreWithStreamedResponse(self)
|
|
342
347
|
|
|
@@ -474,6 +479,7 @@ class GcoreWithRawResponse:
|
|
|
474
479
|
self.cloud = cloud.CloudResourceWithRawResponse(client.cloud)
|
|
475
480
|
self.waap = waap.WaapResourceWithRawResponse(client.waap)
|
|
476
481
|
self.iam = iam.IamResourceWithRawResponse(client.iam)
|
|
482
|
+
self.fastedge = fastedge.FastedgeResourceWithRawResponse(client.fastedge)
|
|
477
483
|
|
|
478
484
|
|
|
479
485
|
class AsyncGcoreWithRawResponse:
|
|
@@ -481,6 +487,7 @@ class AsyncGcoreWithRawResponse:
|
|
|
481
487
|
self.cloud = cloud.AsyncCloudResourceWithRawResponse(client.cloud)
|
|
482
488
|
self.waap = waap.AsyncWaapResourceWithRawResponse(client.waap)
|
|
483
489
|
self.iam = iam.AsyncIamResourceWithRawResponse(client.iam)
|
|
490
|
+
self.fastedge = fastedge.AsyncFastedgeResourceWithRawResponse(client.fastedge)
|
|
484
491
|
|
|
485
492
|
|
|
486
493
|
class GcoreWithStreamedResponse:
|
|
@@ -488,6 +495,7 @@ class GcoreWithStreamedResponse:
|
|
|
488
495
|
self.cloud = cloud.CloudResourceWithStreamingResponse(client.cloud)
|
|
489
496
|
self.waap = waap.WaapResourceWithStreamingResponse(client.waap)
|
|
490
497
|
self.iam = iam.IamResourceWithStreamingResponse(client.iam)
|
|
498
|
+
self.fastedge = fastedge.FastedgeResourceWithStreamingResponse(client.fastedge)
|
|
491
499
|
|
|
492
500
|
|
|
493
501
|
class AsyncGcoreWithStreamedResponse:
|
|
@@ -495,6 +503,7 @@ class AsyncGcoreWithStreamedResponse:
|
|
|
495
503
|
self.cloud = cloud.AsyncCloudResourceWithStreamingResponse(client.cloud)
|
|
496
504
|
self.waap = waap.AsyncWaapResourceWithStreamingResponse(client.waap)
|
|
497
505
|
self.iam = iam.AsyncIamResourceWithStreamingResponse(client.iam)
|
|
506
|
+
self.fastedge = fastedge.AsyncFastedgeResourceWithStreamingResponse(client.fastedge)
|
|
498
507
|
|
|
499
508
|
|
|
500
509
|
Client = Gcore
|
gcore/_constants.py
CHANGED
|
@@ -5,8 +5,8 @@ import httpx
|
|
|
5
5
|
RAW_RESPONSE_HEADER = "X-Stainless-Raw-Response"
|
|
6
6
|
OVERRIDE_CAST_TO_HEADER = "____stainless_override_cast_to"
|
|
7
7
|
|
|
8
|
-
# default timeout is
|
|
9
|
-
DEFAULT_TIMEOUT = httpx.Timeout(timeout=
|
|
8
|
+
# default timeout is 2 minutes
|
|
9
|
+
DEFAULT_TIMEOUT = httpx.Timeout(timeout=120, connect=5.0)
|
|
10
10
|
DEFAULT_MAX_RETRIES = 2
|
|
11
11
|
DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20)
|
|
12
12
|
|
gcore/_models.py
CHANGED
|
@@ -2,9 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
|
-
from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, cast
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
|
|
6
6
|
from datetime import date, datetime
|
|
7
7
|
from typing_extensions import (
|
|
8
|
+
List,
|
|
8
9
|
Unpack,
|
|
9
10
|
Literal,
|
|
10
11
|
ClassVar,
|
|
@@ -366,7 +367,7 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
|
|
|
366
367
|
if type_ is None:
|
|
367
368
|
raise RuntimeError(f"Unexpected field type is None for {key}")
|
|
368
369
|
|
|
369
|
-
return construct_type(value=value, type_=type_)
|
|
370
|
+
return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
|
|
370
371
|
|
|
371
372
|
|
|
372
373
|
def is_basemodel(type_: type) -> bool:
|
|
@@ -420,7 +421,7 @@ def construct_type_unchecked(*, value: object, type_: type[_T]) -> _T:
|
|
|
420
421
|
return cast(_T, construct_type(value=value, type_=type_))
|
|
421
422
|
|
|
422
423
|
|
|
423
|
-
def construct_type(*, value: object, type_: object) -> object:
|
|
424
|
+
def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]] = None) -> object:
|
|
424
425
|
"""Loose coercion to the expected type with construction of nested values.
|
|
425
426
|
|
|
426
427
|
If the given value does not match the expected type then it is returned as-is.
|
|
@@ -438,8 +439,10 @@ def construct_type(*, value: object, type_: object) -> object:
|
|
|
438
439
|
type_ = type_.__value__ # type: ignore[unreachable]
|
|
439
440
|
|
|
440
441
|
# unwrap `Annotated[T, ...]` -> `T`
|
|
441
|
-
if
|
|
442
|
-
meta: tuple[Any, ...] =
|
|
442
|
+
if metadata is not None:
|
|
443
|
+
meta: tuple[Any, ...] = tuple(metadata)
|
|
444
|
+
elif is_annotated_type(type_):
|
|
445
|
+
meta = get_args(type_)[1:]
|
|
443
446
|
type_ = extract_type_arg(type_, 0)
|
|
444
447
|
else:
|
|
445
448
|
meta = tuple()
|
gcore/_version.py
CHANGED
gcore/pagination.py
CHANGED
|
@@ -5,7 +5,18 @@ from typing_extensions import override
|
|
|
5
5
|
|
|
6
6
|
from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
|
|
7
7
|
|
|
8
|
-
__all__ = [
|
|
8
|
+
__all__ = [
|
|
9
|
+
"SyncOffsetPage",
|
|
10
|
+
"AsyncOffsetPage",
|
|
11
|
+
"SyncOffsetPageIam",
|
|
12
|
+
"AsyncOffsetPageIam",
|
|
13
|
+
"SyncOffsetPageFastedgeApps",
|
|
14
|
+
"AsyncOffsetPageFastedgeApps",
|
|
15
|
+
"SyncOffsetPageFastedgeTemplates",
|
|
16
|
+
"AsyncOffsetPageFastedgeTemplates",
|
|
17
|
+
"SyncOffsetPageFastedgeAppLogs",
|
|
18
|
+
"AsyncOffsetPageFastedgeAppLogs",
|
|
19
|
+
]
|
|
9
20
|
|
|
10
21
|
_T = TypeVar("_T")
|
|
11
22
|
|
|
@@ -128,3 +139,183 @@ class AsyncOffsetPageIam(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
|
128
139
|
return PageInfo(params={"offset": current_count})
|
|
129
140
|
|
|
130
141
|
return None
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class SyncOffsetPageFastedgeApps(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
145
|
+
apps: List[_T]
|
|
146
|
+
count: Optional[int] = None
|
|
147
|
+
|
|
148
|
+
@override
|
|
149
|
+
def _get_page_items(self) -> List[_T]:
|
|
150
|
+
apps = self.apps
|
|
151
|
+
if not apps:
|
|
152
|
+
return []
|
|
153
|
+
return apps
|
|
154
|
+
|
|
155
|
+
@override
|
|
156
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
157
|
+
offset = self._options.params.get("offset") or 0
|
|
158
|
+
if not isinstance(offset, int):
|
|
159
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
160
|
+
|
|
161
|
+
length = len(self._get_page_items())
|
|
162
|
+
current_count = offset + length
|
|
163
|
+
|
|
164
|
+
count = self.count
|
|
165
|
+
if count is None:
|
|
166
|
+
return None
|
|
167
|
+
|
|
168
|
+
if current_count < count:
|
|
169
|
+
return PageInfo(params={"offset": current_count})
|
|
170
|
+
|
|
171
|
+
return None
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class AsyncOffsetPageFastedgeApps(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
175
|
+
apps: List[_T]
|
|
176
|
+
count: Optional[int] = None
|
|
177
|
+
|
|
178
|
+
@override
|
|
179
|
+
def _get_page_items(self) -> List[_T]:
|
|
180
|
+
apps = self.apps
|
|
181
|
+
if not apps:
|
|
182
|
+
return []
|
|
183
|
+
return apps
|
|
184
|
+
|
|
185
|
+
@override
|
|
186
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
187
|
+
offset = self._options.params.get("offset") or 0
|
|
188
|
+
if not isinstance(offset, int):
|
|
189
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
190
|
+
|
|
191
|
+
length = len(self._get_page_items())
|
|
192
|
+
current_count = offset + length
|
|
193
|
+
|
|
194
|
+
count = self.count
|
|
195
|
+
if count is None:
|
|
196
|
+
return None
|
|
197
|
+
|
|
198
|
+
if current_count < count:
|
|
199
|
+
return PageInfo(params={"offset": current_count})
|
|
200
|
+
|
|
201
|
+
return None
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class SyncOffsetPageFastedgeTemplates(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
205
|
+
templates: List[_T]
|
|
206
|
+
count: Optional[int] = None
|
|
207
|
+
|
|
208
|
+
@override
|
|
209
|
+
def _get_page_items(self) -> List[_T]:
|
|
210
|
+
templates = self.templates
|
|
211
|
+
if not templates:
|
|
212
|
+
return []
|
|
213
|
+
return templates
|
|
214
|
+
|
|
215
|
+
@override
|
|
216
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
217
|
+
offset = self._options.params.get("offset") or 0
|
|
218
|
+
if not isinstance(offset, int):
|
|
219
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
220
|
+
|
|
221
|
+
length = len(self._get_page_items())
|
|
222
|
+
current_count = offset + length
|
|
223
|
+
|
|
224
|
+
count = self.count
|
|
225
|
+
if count is None:
|
|
226
|
+
return None
|
|
227
|
+
|
|
228
|
+
if current_count < count:
|
|
229
|
+
return PageInfo(params={"offset": current_count})
|
|
230
|
+
|
|
231
|
+
return None
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
class AsyncOffsetPageFastedgeTemplates(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
235
|
+
templates: List[_T]
|
|
236
|
+
count: Optional[int] = None
|
|
237
|
+
|
|
238
|
+
@override
|
|
239
|
+
def _get_page_items(self) -> List[_T]:
|
|
240
|
+
templates = self.templates
|
|
241
|
+
if not templates:
|
|
242
|
+
return []
|
|
243
|
+
return templates
|
|
244
|
+
|
|
245
|
+
@override
|
|
246
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
247
|
+
offset = self._options.params.get("offset") or 0
|
|
248
|
+
if not isinstance(offset, int):
|
|
249
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
250
|
+
|
|
251
|
+
length = len(self._get_page_items())
|
|
252
|
+
current_count = offset + length
|
|
253
|
+
|
|
254
|
+
count = self.count
|
|
255
|
+
if count is None:
|
|
256
|
+
return None
|
|
257
|
+
|
|
258
|
+
if current_count < count:
|
|
259
|
+
return PageInfo(params={"offset": current_count})
|
|
260
|
+
|
|
261
|
+
return None
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
class SyncOffsetPageFastedgeAppLogs(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
265
|
+
logs: List[_T]
|
|
266
|
+
total_count: Optional[int] = None
|
|
267
|
+
|
|
268
|
+
@override
|
|
269
|
+
def _get_page_items(self) -> List[_T]:
|
|
270
|
+
logs = self.logs
|
|
271
|
+
if not logs:
|
|
272
|
+
return []
|
|
273
|
+
return logs
|
|
274
|
+
|
|
275
|
+
@override
|
|
276
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
277
|
+
offset = self._options.params.get("offset") or 0
|
|
278
|
+
if not isinstance(offset, int):
|
|
279
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
280
|
+
|
|
281
|
+
length = len(self._get_page_items())
|
|
282
|
+
current_count = offset + length
|
|
283
|
+
|
|
284
|
+
total_count = self.total_count
|
|
285
|
+
if total_count is None:
|
|
286
|
+
return None
|
|
287
|
+
|
|
288
|
+
if current_count < total_count:
|
|
289
|
+
return PageInfo(params={"offset": current_count})
|
|
290
|
+
|
|
291
|
+
return None
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
class AsyncOffsetPageFastedgeAppLogs(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
295
|
+
logs: List[_T]
|
|
296
|
+
total_count: Optional[int] = None
|
|
297
|
+
|
|
298
|
+
@override
|
|
299
|
+
def _get_page_items(self) -> List[_T]:
|
|
300
|
+
logs = self.logs
|
|
301
|
+
if not logs:
|
|
302
|
+
return []
|
|
303
|
+
return logs
|
|
304
|
+
|
|
305
|
+
@override
|
|
306
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
307
|
+
offset = self._options.params.get("offset") or 0
|
|
308
|
+
if not isinstance(offset, int):
|
|
309
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
310
|
+
|
|
311
|
+
length = len(self._get_page_items())
|
|
312
|
+
current_count = offset + length
|
|
313
|
+
|
|
314
|
+
total_count = self.total_count
|
|
315
|
+
if total_count is None:
|
|
316
|
+
return None
|
|
317
|
+
|
|
318
|
+
if current_count < total_count:
|
|
319
|
+
return PageInfo(params={"offset": current_count})
|
|
320
|
+
|
|
321
|
+
return None
|
gcore/resources/__init__.py
CHANGED
|
@@ -24,6 +24,14 @@ from .cloud import (
|
|
|
24
24
|
CloudResourceWithStreamingResponse,
|
|
25
25
|
AsyncCloudResourceWithStreamingResponse,
|
|
26
26
|
)
|
|
27
|
+
from .fastedge import (
|
|
28
|
+
FastedgeResource,
|
|
29
|
+
AsyncFastedgeResource,
|
|
30
|
+
FastedgeResourceWithRawResponse,
|
|
31
|
+
AsyncFastedgeResourceWithRawResponse,
|
|
32
|
+
FastedgeResourceWithStreamingResponse,
|
|
33
|
+
AsyncFastedgeResourceWithStreamingResponse,
|
|
34
|
+
)
|
|
27
35
|
|
|
28
36
|
__all__ = [
|
|
29
37
|
"CloudResource",
|
|
@@ -44,4 +52,10 @@ __all__ = [
|
|
|
44
52
|
"AsyncIamResourceWithRawResponse",
|
|
45
53
|
"IamResourceWithStreamingResponse",
|
|
46
54
|
"AsyncIamResourceWithStreamingResponse",
|
|
55
|
+
"FastedgeResource",
|
|
56
|
+
"AsyncFastedgeResource",
|
|
57
|
+
"FastedgeResourceWithRawResponse",
|
|
58
|
+
"AsyncFastedgeResourceWithRawResponse",
|
|
59
|
+
"FastedgeResourceWithStreamingResponse",
|
|
60
|
+
"AsyncFastedgeResourceWithStreamingResponse",
|
|
47
61
|
]
|
|
@@ -126,7 +126,7 @@ class ServersResource(SyncAPIResource):
|
|
|
126
126
|
password of the Admin user cannot be updated via '`user_data`'.
|
|
127
127
|
|
|
128
128
|
ssh_key_name: Specifies the name of the SSH keypair, created via the
|
|
129
|
-
[/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
|
|
129
|
+
[/v1/`ssh_keys` endpoint](/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).
|
|
130
130
|
|
|
131
131
|
tags: Key-value tags to associate with the resource. A tag is a key-value pair that
|
|
132
132
|
can be associated with a resource, enabling efficient filtering and grouping for
|
|
@@ -602,7 +602,7 @@ class AsyncServersResource(AsyncAPIResource):
|
|
|
602
602
|
password of the Admin user cannot be updated via '`user_data`'.
|
|
603
603
|
|
|
604
604
|
ssh_key_name: Specifies the name of the SSH keypair, created via the
|
|
605
|
-
[/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
|
|
605
|
+
[/v1/`ssh_keys` endpoint](/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).
|
|
606
606
|
|
|
607
607
|
tags: Key-value tags to associate with the resource. A tag is a key-value pair that
|
|
608
608
|
can be associated with a resource, enabling efficient filtering and grouping for
|
|
@@ -144,7 +144,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
144
144
|
instance
|
|
145
145
|
|
|
146
146
|
ssh_key_name: Specifies the name of the SSH keypair, created via the
|
|
147
|
-
[/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
|
|
147
|
+
[/v1/`ssh_keys` endpoint](/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).
|
|
148
148
|
|
|
149
149
|
tags: Key-value tags to associate with the resource. A tag is a key-value pair that
|
|
150
150
|
can be associated with a resource, enabling efficient filtering and grouping for
|
|
@@ -772,7 +772,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
772
772
|
instance
|
|
773
773
|
|
|
774
774
|
ssh_key_name: Specifies the name of the SSH keypair, created via the
|
|
775
|
-
[/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
|
|
775
|
+
[/v1/`ssh_keys` endpoint](/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).
|
|
776
776
|
|
|
777
777
|
tags: Key-value tags to associate with the resource. A tag is a key-value pair that
|
|
778
778
|
can be associated with a resource, enabling efficient filtering and grouping for
|