metal-stack-api 0.1.0__tar.gz → 0.1.1__tar.gz
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.
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/PKG-INFO +3 -3
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metal_stack_api.egg-info/PKG-INFO +3 -3
- metal_stack_api-0.1.1/metal_stack_api.egg-info/requires.txt +2 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/audit_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/component_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/filesystem_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/image_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/ip_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/machine_connect.py +78 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/machine_pb2.py +15 -3
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/machine_pb2.pyi +16 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/network_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/partition_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/project_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_imageconstraint_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_reservation_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/switch_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/task_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/tenant_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/token_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/vpn_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/audit_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/filesystem_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/health_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/image_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/ip_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/machine_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/method_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/network_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/partition_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/project_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_imageconstraint_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_reservation_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/tenant_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/token_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/user_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/version_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/bmc_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/boot_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/component_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/event_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/switch_connect.py +13 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/setup.py +2 -2
- metal_stack_api-0.1.0/metal_stack_api.egg-info/requires.txt +0 -2
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/README.md +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metal_stack_api.egg-info/SOURCES.txt +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metal_stack_api.egg-info/dependency_links.txt +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metal_stack_api.egg-info/top_level.txt +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/audit_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/audit_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/component_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/component_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/filesystem_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/filesystem_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/image_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/image_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/ip_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/ip_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/network_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/network_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/partition_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/partition_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/project_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/project_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_imageconstraint_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_imageconstraint_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_reservation_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/size_reservation_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/switch_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/switch_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/task_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/task_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/tenant_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/tenant_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/token_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/token_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/vpn_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/admin/v2/vpn_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/audit_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/audit_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/common_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/common_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/component_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/component_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/filesystem_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/filesystem_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/health_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/health_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/image_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/image_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/ip_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/ip_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/machine_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/machine_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/method_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/method_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/network_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/network_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/partition_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/partition_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/predefined_rules_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/predefined_rules_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/project_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/project_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_imageconstraint_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_imageconstraint_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_reservation_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/size_reservation_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/switch_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/switch_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/tenant_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/tenant_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/token_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/token_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/user_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/user_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/version_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/version_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/vpn_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/api/v2/vpn_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/client/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/client/client.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/__init__.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/bmc_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/bmc_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/boot_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/boot_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/component_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/component_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/event_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/event_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/switch_pb2.py +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/metalstack/infra/v2/switch_pb2.pyi +0 -0
- {metal_stack_api-0.1.0 → metal_stack_api-0.1.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metal-stack-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Python API client for metal-stack api
|
|
5
5
|
Home-page: https://github.com/metal-stack/api
|
|
6
6
|
Author: metal-stack authors
|
|
@@ -13,8 +13,8 @@ Classifier: Programming Language :: Python :: 3
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Requires-Dist:
|
|
17
|
-
Requires-Dist: protovalidate>=1.
|
|
16
|
+
Requires-Dist: connectrpc>=0.10.0
|
|
17
|
+
Requires-Dist: protovalidate>=1.2.0
|
|
18
18
|
Dynamic: author
|
|
19
19
|
Dynamic: classifier
|
|
20
20
|
Dynamic: description
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metal-stack-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Python API client for metal-stack api
|
|
5
5
|
Home-page: https://github.com/metal-stack/api
|
|
6
6
|
Author: metal-stack authors
|
|
@@ -13,8 +13,8 @@ Classifier: Programming Language :: Python :: 3
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Requires-Dist:
|
|
17
|
-
Requires-Dist: protovalidate>=1.
|
|
16
|
+
Requires-Dist: connectrpc>=0.10.0
|
|
17
|
+
Requires-Dist: protovalidate>=1.2.0
|
|
18
18
|
Dynamic: author
|
|
19
19
|
Dynamic: classifier
|
|
20
20
|
Dynamic: description
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -24,7 +26,7 @@ class AuditService(Protocol):
|
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
class AuditServiceASGIApplication(ConnectASGIApplication[AuditService]):
|
|
27
|
-
def __init__(self, service: AuditService | AsyncGenerator[AuditService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
29
|
+
def __init__(self, service: AuditService | AsyncGenerator[AuditService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
28
30
|
super().__init__(
|
|
29
31
|
service=service,
|
|
30
32
|
endpoints=lambda svc: {
|
|
@@ -51,6 +53,8 @@ class AuditServiceASGIApplication(ConnectASGIApplication[AuditService]):
|
|
|
51
53
|
},
|
|
52
54
|
interceptors=interceptors,
|
|
53
55
|
read_max_bytes=read_max_bytes,
|
|
56
|
+
compressions=compressions,
|
|
57
|
+
codecs=codecs,
|
|
54
58
|
)
|
|
55
59
|
|
|
56
60
|
@property
|
|
@@ -101,6 +105,9 @@ class AuditServiceClient(ConnectClient):
|
|
|
101
105
|
)
|
|
102
106
|
|
|
103
107
|
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
104
111
|
class AuditServiceSync(Protocol):
|
|
105
112
|
def get(self, request: metalstack_dot_admin_dot_v2_dot_audit__pb2.AuditServiceGetRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_audit__pb2.AuditServiceGetResponse:
|
|
106
113
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
@@ -109,7 +116,7 @@ class AuditServiceSync(Protocol):
|
|
|
109
116
|
|
|
110
117
|
|
|
111
118
|
class AuditServiceWSGIApplication(ConnectWSGIApplication):
|
|
112
|
-
def __init__(self, service: AuditServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
119
|
+
def __init__(self, service: AuditServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
113
120
|
super().__init__(
|
|
114
121
|
endpoints={
|
|
115
122
|
"/metalstack.admin.v2.AuditService/Get": EndpointSync.unary(
|
|
@@ -135,6 +142,8 @@ class AuditServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
135
142
|
},
|
|
136
143
|
interceptors=interceptors,
|
|
137
144
|
read_max_bytes=read_max_bytes,
|
|
145
|
+
compressions=compressions,
|
|
146
|
+
codecs=codecs,
|
|
138
147
|
)
|
|
139
148
|
|
|
140
149
|
@property
|
|
@@ -183,3 +192,5 @@ class AuditServiceClientSync(ConnectClientSync):
|
|
|
183
192
|
headers=headers,
|
|
184
193
|
timeout_ms=timeout_ms,
|
|
185
194
|
)
|
|
195
|
+
|
|
196
|
+
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -27,7 +29,7 @@ class ComponentService(Protocol):
|
|
|
27
29
|
|
|
28
30
|
|
|
29
31
|
class ComponentServiceASGIApplication(ConnectASGIApplication[ComponentService]):
|
|
30
|
-
def __init__(self, service: ComponentService | AsyncGenerator[ComponentService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
32
|
+
def __init__(self, service: ComponentService | AsyncGenerator[ComponentService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
31
33
|
super().__init__(
|
|
32
34
|
service=service,
|
|
33
35
|
endpoints=lambda svc: {
|
|
@@ -64,6 +66,8 @@ class ComponentServiceASGIApplication(ConnectASGIApplication[ComponentService]):
|
|
|
64
66
|
},
|
|
65
67
|
interceptors=interceptors,
|
|
66
68
|
read_max_bytes=read_max_bytes,
|
|
69
|
+
compressions=compressions,
|
|
70
|
+
codecs=codecs,
|
|
67
71
|
)
|
|
68
72
|
|
|
69
73
|
@property
|
|
@@ -134,6 +138,9 @@ class ComponentServiceClient(ConnectClient):
|
|
|
134
138
|
)
|
|
135
139
|
|
|
136
140
|
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
137
144
|
class ComponentServiceSync(Protocol):
|
|
138
145
|
def get(self, request: metalstack_dot_admin_dot_v2_dot_component__pb2.ComponentServiceGetRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_component__pb2.ComponentServiceGetResponse:
|
|
139
146
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
@@ -144,7 +151,7 @@ class ComponentServiceSync(Protocol):
|
|
|
144
151
|
|
|
145
152
|
|
|
146
153
|
class ComponentServiceWSGIApplication(ConnectWSGIApplication):
|
|
147
|
-
def __init__(self, service: ComponentServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
154
|
+
def __init__(self, service: ComponentServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
148
155
|
super().__init__(
|
|
149
156
|
endpoints={
|
|
150
157
|
"/metalstack.admin.v2.ComponentService/Get": EndpointSync.unary(
|
|
@@ -180,6 +187,8 @@ class ComponentServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
180
187
|
},
|
|
181
188
|
interceptors=interceptors,
|
|
182
189
|
read_max_bytes=read_max_bytes,
|
|
190
|
+
compressions=compressions,
|
|
191
|
+
codecs=codecs,
|
|
183
192
|
)
|
|
184
193
|
|
|
185
194
|
@property
|
|
@@ -248,3 +257,5 @@ class ComponentServiceClientSync(ConnectClientSync):
|
|
|
248
257
|
headers=headers,
|
|
249
258
|
timeout_ms=timeout_ms,
|
|
250
259
|
)
|
|
260
|
+
|
|
261
|
+
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -30,7 +32,7 @@ class FilesystemService(Protocol):
|
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
class FilesystemServiceASGIApplication(ConnectASGIApplication[FilesystemService]):
|
|
33
|
-
def __init__(self, service: FilesystemService | AsyncGenerator[FilesystemService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
35
|
+
def __init__(self, service: FilesystemService | AsyncGenerator[FilesystemService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
34
36
|
super().__init__(
|
|
35
37
|
service=service,
|
|
36
38
|
endpoints=lambda svc: {
|
|
@@ -77,6 +79,8 @@ class FilesystemServiceASGIApplication(ConnectASGIApplication[FilesystemService]
|
|
|
77
79
|
},
|
|
78
80
|
interceptors=interceptors,
|
|
79
81
|
read_max_bytes=read_max_bytes,
|
|
82
|
+
compressions=compressions,
|
|
83
|
+
codecs=codecs,
|
|
80
84
|
)
|
|
81
85
|
|
|
82
86
|
@property
|
|
@@ -167,6 +171,9 @@ class FilesystemServiceClient(ConnectClient):
|
|
|
167
171
|
)
|
|
168
172
|
|
|
169
173
|
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
170
177
|
class FilesystemServiceSync(Protocol):
|
|
171
178
|
def create(self, request: metalstack_dot_admin_dot_v2_dot_filesystem__pb2.FilesystemServiceCreateRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_filesystem__pb2.FilesystemServiceCreateResponse:
|
|
172
179
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
@@ -179,7 +186,7 @@ class FilesystemServiceSync(Protocol):
|
|
|
179
186
|
|
|
180
187
|
|
|
181
188
|
class FilesystemServiceWSGIApplication(ConnectWSGIApplication):
|
|
182
|
-
def __init__(self, service: FilesystemServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
189
|
+
def __init__(self, service: FilesystemServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
183
190
|
super().__init__(
|
|
184
191
|
endpoints={
|
|
185
192
|
"/metalstack.admin.v2.FilesystemService/Create": EndpointSync.unary(
|
|
@@ -225,6 +232,8 @@ class FilesystemServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
225
232
|
},
|
|
226
233
|
interceptors=interceptors,
|
|
227
234
|
read_max_bytes=read_max_bytes,
|
|
235
|
+
compressions=compressions,
|
|
236
|
+
codecs=codecs,
|
|
228
237
|
)
|
|
229
238
|
|
|
230
239
|
@property
|
|
@@ -313,3 +322,5 @@ class FilesystemServiceClientSync(ConnectClientSync):
|
|
|
313
322
|
headers=headers,
|
|
314
323
|
timeout_ms=timeout_ms,
|
|
315
324
|
)
|
|
325
|
+
|
|
326
|
+
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -30,7 +32,7 @@ class ImageService(Protocol):
|
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
class ImageServiceASGIApplication(ConnectASGIApplication[ImageService]):
|
|
33
|
-
def __init__(self, service: ImageService | AsyncGenerator[ImageService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
35
|
+
def __init__(self, service: ImageService | AsyncGenerator[ImageService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
34
36
|
super().__init__(
|
|
35
37
|
service=service,
|
|
36
38
|
endpoints=lambda svc: {
|
|
@@ -77,6 +79,8 @@ class ImageServiceASGIApplication(ConnectASGIApplication[ImageService]):
|
|
|
77
79
|
},
|
|
78
80
|
interceptors=interceptors,
|
|
79
81
|
read_max_bytes=read_max_bytes,
|
|
82
|
+
compressions=compressions,
|
|
83
|
+
codecs=codecs,
|
|
80
84
|
)
|
|
81
85
|
|
|
82
86
|
@property
|
|
@@ -167,6 +171,9 @@ class ImageServiceClient(ConnectClient):
|
|
|
167
171
|
)
|
|
168
172
|
|
|
169
173
|
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
170
177
|
class ImageServiceSync(Protocol):
|
|
171
178
|
def create(self, request: metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceCreateRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceCreateResponse:
|
|
172
179
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
@@ -179,7 +186,7 @@ class ImageServiceSync(Protocol):
|
|
|
179
186
|
|
|
180
187
|
|
|
181
188
|
class ImageServiceWSGIApplication(ConnectWSGIApplication):
|
|
182
|
-
def __init__(self, service: ImageServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
189
|
+
def __init__(self, service: ImageServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
183
190
|
super().__init__(
|
|
184
191
|
endpoints={
|
|
185
192
|
"/metalstack.admin.v2.ImageService/Create": EndpointSync.unary(
|
|
@@ -225,6 +232,8 @@ class ImageServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
225
232
|
},
|
|
226
233
|
interceptors=interceptors,
|
|
227
234
|
read_max_bytes=read_max_bytes,
|
|
235
|
+
compressions=compressions,
|
|
236
|
+
codecs=codecs,
|
|
228
237
|
)
|
|
229
238
|
|
|
230
239
|
@property
|
|
@@ -313,3 +322,5 @@ class ImageServiceClientSync(ConnectClientSync):
|
|
|
313
322
|
headers=headers,
|
|
314
323
|
timeout_ms=timeout_ms,
|
|
315
324
|
)
|
|
325
|
+
|
|
326
|
+
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -21,7 +23,7 @@ class IPService(Protocol):
|
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
class IPServiceASGIApplication(ConnectASGIApplication[IPService]):
|
|
24
|
-
def __init__(self, service: IPService | AsyncGenerator[IPService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
26
|
+
def __init__(self, service: IPService | AsyncGenerator[IPService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
25
27
|
super().__init__(
|
|
26
28
|
service=service,
|
|
27
29
|
endpoints=lambda svc: {
|
|
@@ -38,6 +40,8 @@ class IPServiceASGIApplication(ConnectASGIApplication[IPService]):
|
|
|
38
40
|
},
|
|
39
41
|
interceptors=interceptors,
|
|
40
42
|
read_max_bytes=read_max_bytes,
|
|
43
|
+
compressions=compressions,
|
|
44
|
+
codecs=codecs,
|
|
41
45
|
)
|
|
42
46
|
|
|
43
47
|
@property
|
|
@@ -68,13 +72,16 @@ class IPServiceClient(ConnectClient):
|
|
|
68
72
|
)
|
|
69
73
|
|
|
70
74
|
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
71
78
|
class IPServiceSync(Protocol):
|
|
72
79
|
def list(self, request: metalstack_dot_admin_dot_v2_dot_ip__pb2.IPServiceListRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_ip__pb2.IPServiceListResponse:
|
|
73
80
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
74
81
|
|
|
75
82
|
|
|
76
83
|
class IPServiceWSGIApplication(ConnectWSGIApplication):
|
|
77
|
-
def __init__(self, service: IPServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
84
|
+
def __init__(self, service: IPServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
78
85
|
super().__init__(
|
|
79
86
|
endpoints={
|
|
80
87
|
"/metalstack.admin.v2.IPService/List": EndpointSync.unary(
|
|
@@ -90,6 +97,8 @@ class IPServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
90
97
|
},
|
|
91
98
|
interceptors=interceptors,
|
|
92
99
|
read_max_bytes=read_max_bytes,
|
|
100
|
+
compressions=compressions,
|
|
101
|
+
codecs=codecs,
|
|
93
102
|
)
|
|
94
103
|
|
|
95
104
|
@property
|
|
@@ -118,3 +127,5 @@ class IPServiceClientSync(ConnectClientSync):
|
|
|
118
127
|
headers=headers,
|
|
119
128
|
timeout_ms=timeout_ms,
|
|
120
129
|
)
|
|
130
|
+
|
|
131
|
+
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -34,9 +36,12 @@ class MachineService(Protocol):
|
|
|
34
36
|
async def console_password(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceConsolePasswordRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceConsolePasswordResponse:
|
|
35
37
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
36
38
|
|
|
39
|
+
async def set_state(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse:
|
|
40
|
+
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
41
|
+
|
|
37
42
|
|
|
38
43
|
class MachineServiceASGIApplication(ConnectASGIApplication[MachineService]):
|
|
39
|
-
def __init__(self, service: MachineService | AsyncGenerator[MachineService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
44
|
+
def __init__(self, service: MachineService | AsyncGenerator[MachineService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
40
45
|
super().__init__(
|
|
41
46
|
service=service,
|
|
42
47
|
endpoints=lambda svc: {
|
|
@@ -100,9 +105,21 @@ class MachineServiceASGIApplication(ConnectASGIApplication[MachineService]):
|
|
|
100
105
|
),
|
|
101
106
|
function=svc.console_password,
|
|
102
107
|
),
|
|
108
|
+
"/metalstack.admin.v2.MachineService/SetState": Endpoint.unary(
|
|
109
|
+
method=MethodInfo(
|
|
110
|
+
name="SetState",
|
|
111
|
+
service_name="metalstack.admin.v2.MachineService",
|
|
112
|
+
input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
113
|
+
output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse,
|
|
114
|
+
idempotency_level=IdempotencyLevel.UNKNOWN,
|
|
115
|
+
),
|
|
116
|
+
function=svc.set_state,
|
|
117
|
+
),
|
|
103
118
|
},
|
|
104
119
|
interceptors=interceptors,
|
|
105
120
|
read_max_bytes=read_max_bytes,
|
|
121
|
+
compressions=compressions,
|
|
122
|
+
codecs=codecs,
|
|
106
123
|
)
|
|
107
124
|
|
|
108
125
|
@property
|
|
@@ -232,6 +249,29 @@ class MachineServiceClient(ConnectClient):
|
|
|
232
249
|
timeout_ms=timeout_ms,
|
|
233
250
|
)
|
|
234
251
|
|
|
252
|
+
async def set_state(
|
|
253
|
+
self,
|
|
254
|
+
request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
255
|
+
*,
|
|
256
|
+
headers: Headers | Mapping[str, str] | None = None,
|
|
257
|
+
timeout_ms: int | None = None,
|
|
258
|
+
) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse:
|
|
259
|
+
return await self.execute_unary(
|
|
260
|
+
request=request,
|
|
261
|
+
method=MethodInfo(
|
|
262
|
+
name="SetState",
|
|
263
|
+
service_name="metalstack.admin.v2.MachineService",
|
|
264
|
+
input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
265
|
+
output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse,
|
|
266
|
+
idempotency_level=IdempotencyLevel.UNKNOWN,
|
|
267
|
+
),
|
|
268
|
+
headers=headers,
|
|
269
|
+
timeout_ms=timeout_ms,
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
235
275
|
|
|
236
276
|
class MachineServiceSync(Protocol):
|
|
237
277
|
def get(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceGetRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceGetResponse:
|
|
@@ -246,10 +286,12 @@ class MachineServiceSync(Protocol):
|
|
|
246
286
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
247
287
|
def console_password(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceConsolePasswordRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceConsolePasswordResponse:
|
|
248
288
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
289
|
+
def set_state(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse:
|
|
290
|
+
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
249
291
|
|
|
250
292
|
|
|
251
293
|
class MachineServiceWSGIApplication(ConnectWSGIApplication):
|
|
252
|
-
def __init__(self, service: MachineServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
294
|
+
def __init__(self, service: MachineServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
253
295
|
super().__init__(
|
|
254
296
|
endpoints={
|
|
255
297
|
"/metalstack.admin.v2.MachineService/Get": EndpointSync.unary(
|
|
@@ -312,9 +354,21 @@ class MachineServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
312
354
|
),
|
|
313
355
|
function=service.console_password,
|
|
314
356
|
),
|
|
357
|
+
"/metalstack.admin.v2.MachineService/SetState": EndpointSync.unary(
|
|
358
|
+
method=MethodInfo(
|
|
359
|
+
name="SetState",
|
|
360
|
+
service_name="metalstack.admin.v2.MachineService",
|
|
361
|
+
input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
362
|
+
output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse,
|
|
363
|
+
idempotency_level=IdempotencyLevel.UNKNOWN,
|
|
364
|
+
),
|
|
365
|
+
function=service.set_state,
|
|
366
|
+
),
|
|
315
367
|
},
|
|
316
368
|
interceptors=interceptors,
|
|
317
369
|
read_max_bytes=read_max_bytes,
|
|
370
|
+
compressions=compressions,
|
|
371
|
+
codecs=codecs,
|
|
318
372
|
)
|
|
319
373
|
|
|
320
374
|
@property
|
|
@@ -443,3 +497,25 @@ class MachineServiceClientSync(ConnectClientSync):
|
|
|
443
497
|
headers=headers,
|
|
444
498
|
timeout_ms=timeout_ms,
|
|
445
499
|
)
|
|
500
|
+
|
|
501
|
+
def set_state(
|
|
502
|
+
self,
|
|
503
|
+
request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
504
|
+
*,
|
|
505
|
+
headers: Headers | Mapping[str, str] | None = None,
|
|
506
|
+
timeout_ms: int | None = None,
|
|
507
|
+
) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse:
|
|
508
|
+
return self.execute_unary(
|
|
509
|
+
request=request,
|
|
510
|
+
method=MethodInfo(
|
|
511
|
+
name="SetState",
|
|
512
|
+
service_name="metalstack.admin.v2.MachineService",
|
|
513
|
+
input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateRequest,
|
|
514
|
+
output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceSetStateResponse,
|
|
515
|
+
idempotency_level=IdempotencyLevel.UNKNOWN,
|
|
516
|
+
),
|
|
517
|
+
headers=headers,
|
|
518
|
+
timeout_ms=timeout_ms,
|
|
519
|
+
)
|
|
520
|
+
|
|
521
|
+
|
|
@@ -28,7 +28,7 @@ from metalstack.api.v2 import machine_pb2 as metalstack_dot_api_dot_v2_dot_machi
|
|
|
28
28
|
from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/machine.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"8\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\x90\x01\n\x19MachineServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x00R\tpartition\x88\x01\x01\x42\x0c\n\n_partition\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"\x89\x01\n\x1fMachineServiceBMCCommandRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12H\n\x07\x63ommand\x18\x02 \x01(\x0e\x32$.metalstack.api.v2.MachineBMCCommandB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07\x63ommand\"\"\n MachineServiceBMCCommandResponse\";\n\x1bMachineServiceGetBMCRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"s\n\x1cMachineServiceGetBMCResponse\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x35\n\x03\x62mc\x18\x02 \x01(\x0b\x32#.metalstack.api.v2.MachineBMCReportR\x03\x62mc\"X\n\x1cMachineServiceListBMCRequest\x12\x38\n\x05query\x18\x01 \x01(\x0b\x32\".metalstack.api.v2.MachineBMCQueryR\x05query\"\xf7\x01\n\x1dMachineServiceListBMCResponse\x12r\n\x0b\x62mc_reports\x18\x01 \x03(\x0b\x32\x42.metalstack.admin.v2.MachineServiceListBMCResponse.BmcReportsEntryB\r\xbaH\n\x9a\x01\x07\"\x05r\x03\xb0\x01\x01R\nbmcReports\x1a\x62\n\x0f\x42mcReportsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.metalstack.api.v2.MachineBMCReportR\x05value:\x02\x38\x01\"h\n$MachineServiceConsolePasswordRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x06reason\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\n\x18\x80\x04R\x06reason\"a\n%MachineServiceConsolePasswordResponse\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x1a\n\x08password\x18\x02 \x01(\tR\
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/machine.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"8\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\x90\x01\n\x19MachineServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x00R\tpartition\x88\x01\x01\x42\x0c\n\n_partition\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"\x89\x01\n\x1fMachineServiceBMCCommandRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12H\n\x07\x63ommand\x18\x02 \x01(\x0e\x32$.metalstack.api.v2.MachineBMCCommandB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07\x63ommand\"\"\n MachineServiceBMCCommandResponse\";\n\x1bMachineServiceGetBMCRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"s\n\x1cMachineServiceGetBMCResponse\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x35\n\x03\x62mc\x18\x02 \x01(\x0b\x32#.metalstack.api.v2.MachineBMCReportR\x03\x62mc\"X\n\x1cMachineServiceListBMCRequest\x12\x38\n\x05query\x18\x01 \x01(\x0b\x32\".metalstack.api.v2.MachineBMCQueryR\x05query\"\xf7\x01\n\x1dMachineServiceListBMCResponse\x12r\n\x0b\x62mc_reports\x18\x01 \x03(\x0b\x32\x42.metalstack.admin.v2.MachineServiceListBMCResponse.BmcReportsEntryB\r\xbaH\n\x9a\x01\x07\"\x05r\x03\xb0\x01\x01R\nbmcReports\x1a\x62\n\x0f\x42mcReportsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.metalstack.api.v2.MachineBMCReportR\x05value:\x02\x38\x01\"h\n$MachineServiceConsolePasswordRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x06reason\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\n\x18\x80\x04R\x06reason\"a\n%MachineServiceConsolePasswordResponse\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x1a\n\x08password\x18\x02 \x01(\tR\x08password\"\xad\x01\n\x1dMachineServiceSetStateRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12?\n\x05state\x18\x02 \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\"V\n\x1eMachineServiceSetStateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine2\x8e\x07\n\x0eMachineService\x12p\n\x03Get\x12-.metalstack.admin.v2.MachineServiceGetRequest\x1a..metalstack.admin.v2.MachineServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12s\n\x04List\x12..metalstack.admin.v2.MachineServiceListRequest\x1a/.metalstack.admin.v2.MachineServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x84\x01\n\nBMCCommand\x12\x34.metalstack.admin.v2.MachineServiceBMCCommandRequest\x1a\x35.metalstack.admin.v2.MachineServiceBMCCommandResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12y\n\x06GetBMC\x12\x30.metalstack.admin.v2.MachineServiceGetBMCRequest\x1a\x31.metalstack.admin.v2.MachineServiceGetBMCResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12|\n\x07ListBMC\x12\x31.metalstack.admin.v2.MachineServiceListBMCRequest\x1a\x32.metalstack.admin.v2.MachineServiceListBMCResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12\x94\x01\n\x0f\x43onsolePassword\x12\x39.metalstack.admin.v2.MachineServiceConsolePasswordRequest\x1a:.metalstack.admin.v2.MachineServiceConsolePasswordResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12~\n\x08SetState\x12\x32.metalstack.admin.v2.MachineServiceSetStateRequest\x1a\x33.metalstack.admin.v2.MachineServiceSetStateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cMachineProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
|
|
32
32
|
|
|
33
33
|
_globals = globals()
|
|
34
34
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -58,6 +58,12 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
58
58
|
_globals['_MACHINESERVICECONSOLEPASSWORDREQUEST'].fields_by_name['reason']._serialized_options = b'\272H\007r\005\020\n\030\200\004'
|
|
59
59
|
_globals['_MACHINESERVICECONSOLEPASSWORDRESPONSE'].fields_by_name['uuid']._loaded_options = None
|
|
60
60
|
_globals['_MACHINESERVICECONSOLEPASSWORDRESPONSE'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001'
|
|
61
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['uuid']._loaded_options = None
|
|
62
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001'
|
|
63
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['state']._loaded_options = None
|
|
64
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['state']._serialized_options = b'\272H\005\202\001\002\020\001'
|
|
65
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['description']._loaded_options = None
|
|
66
|
+
_globals['_MACHINESERVICESETSTATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
|
|
61
67
|
_globals['_MACHINESERVICE'].methods_by_name['Get']._loaded_options = None
|
|
62
68
|
_globals['_MACHINESERVICE'].methods_by_name['Get']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
|
|
63
69
|
_globals['_MACHINESERVICE'].methods_by_name['List']._loaded_options = None
|
|
@@ -70,6 +76,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
70
76
|
_globals['_MACHINESERVICE'].methods_by_name['ListBMC']._serialized_options = b'\322\363\030\002\001\002\340\363\030\001'
|
|
71
77
|
_globals['_MACHINESERVICE'].methods_by_name['ConsolePassword']._loaded_options = None
|
|
72
78
|
_globals['_MACHINESERVICE'].methods_by_name['ConsolePassword']._serialized_options = b'\322\363\030\002\001\002\340\363\030\001'
|
|
79
|
+
_globals['_MACHINESERVICE'].methods_by_name['SetState']._loaded_options = None
|
|
80
|
+
_globals['_MACHINESERVICE'].methods_by_name['SetState']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
|
|
73
81
|
_globals['_MACHINESERVICEGETREQUEST']._serialized_start=194
|
|
74
82
|
_globals['_MACHINESERVICEGETREQUEST']._serialized_end=250
|
|
75
83
|
_globals['_MACHINESERVICEGETRESPONSE']._serialized_start=252
|
|
@@ -96,6 +104,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
96
104
|
_globals['_MACHINESERVICECONSOLEPASSWORDREQUEST']._serialized_end=1366
|
|
97
105
|
_globals['_MACHINESERVICECONSOLEPASSWORDRESPONSE']._serialized_start=1368
|
|
98
106
|
_globals['_MACHINESERVICECONSOLEPASSWORDRESPONSE']._serialized_end=1465
|
|
99
|
-
_globals['
|
|
100
|
-
_globals['
|
|
107
|
+
_globals['_MACHINESERVICESETSTATEREQUEST']._serialized_start=1468
|
|
108
|
+
_globals['_MACHINESERVICESETSTATEREQUEST']._serialized_end=1641
|
|
109
|
+
_globals['_MACHINESERVICESETSTATERESPONSE']._serialized_start=1643
|
|
110
|
+
_globals['_MACHINESERVICESETSTATERESPONSE']._serialized_end=1729
|
|
111
|
+
_globals['_MACHINESERVICE']._serialized_start=1732
|
|
112
|
+
_globals['_MACHINESERVICE']._serialized_end=2642
|
|
101
113
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -96,3 +96,19 @@ class MachineServiceConsolePasswordResponse(_message.Message):
|
|
|
96
96
|
uuid: str
|
|
97
97
|
password: str
|
|
98
98
|
def __init__(self, uuid: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ...
|
|
99
|
+
|
|
100
|
+
class MachineServiceSetStateRequest(_message.Message):
|
|
101
|
+
__slots__ = ("uuid", "state", "description")
|
|
102
|
+
UUID_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
STATE_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
uuid: str
|
|
106
|
+
state: _machine_pb2.MachineState
|
|
107
|
+
description: str
|
|
108
|
+
def __init__(self, uuid: _Optional[str] = ..., state: _Optional[_Union[_machine_pb2.MachineState, str]] = ..., description: _Optional[str] = ...) -> None: ...
|
|
109
|
+
|
|
110
|
+
class MachineServiceSetStateResponse(_message.Message):
|
|
111
|
+
__slots__ = ("machine",)
|
|
112
|
+
MACHINE_FIELD_NUMBER: _ClassVar[int]
|
|
113
|
+
machine: _machine_pb2.Machine
|
|
114
|
+
def __init__(self, machine: _Optional[_Union[_machine_pb2.Machine, _Mapping]] = ...) -> None: ...
|
|
@@ -7,6 +7,8 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.codec import Codec
|
|
11
|
+
from connectrpc.compression import Compression
|
|
10
12
|
from connectrpc.errors import ConnectError
|
|
11
13
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
14
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -33,7 +35,7 @@ class NetworkService(Protocol):
|
|
|
33
35
|
|
|
34
36
|
|
|
35
37
|
class NetworkServiceASGIApplication(ConnectASGIApplication[NetworkService]):
|
|
36
|
-
def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
38
|
+
def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
37
39
|
super().__init__(
|
|
38
40
|
service=service,
|
|
39
41
|
endpoints=lambda svc: {
|
|
@@ -90,6 +92,8 @@ class NetworkServiceASGIApplication(ConnectASGIApplication[NetworkService]):
|
|
|
90
92
|
},
|
|
91
93
|
interceptors=interceptors,
|
|
92
94
|
read_max_bytes=read_max_bytes,
|
|
95
|
+
compressions=compressions,
|
|
96
|
+
codecs=codecs,
|
|
93
97
|
)
|
|
94
98
|
|
|
95
99
|
@property
|
|
@@ -200,6 +204,9 @@ class NetworkServiceClient(ConnectClient):
|
|
|
200
204
|
)
|
|
201
205
|
|
|
202
206
|
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
203
210
|
class NetworkServiceSync(Protocol):
|
|
204
211
|
def get(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceGetRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceGetResponse:
|
|
205
212
|
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
|
|
@@ -214,7 +221,7 @@ class NetworkServiceSync(Protocol):
|
|
|
214
221
|
|
|
215
222
|
|
|
216
223
|
class NetworkServiceWSGIApplication(ConnectWSGIApplication):
|
|
217
|
-
def __init__(self, service: NetworkServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
224
|
+
def __init__(self, service: NetworkServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
|
|
218
225
|
super().__init__(
|
|
219
226
|
endpoints={
|
|
220
227
|
"/metalstack.admin.v2.NetworkService/Get": EndpointSync.unary(
|
|
@@ -270,6 +277,8 @@ class NetworkServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
270
277
|
},
|
|
271
278
|
interceptors=interceptors,
|
|
272
279
|
read_max_bytes=read_max_bytes,
|
|
280
|
+
compressions=compressions,
|
|
281
|
+
codecs=codecs,
|
|
273
282
|
)
|
|
274
283
|
|
|
275
284
|
@property
|
|
@@ -378,3 +387,5 @@ class NetworkServiceClientSync(ConnectClientSync):
|
|
|
378
387
|
headers=headers,
|
|
379
388
|
timeout_ms=timeout_ms,
|
|
380
389
|
)
|
|
390
|
+
|
|
391
|
+
|