metal-stack-api 0.0.39__tar.gz → 0.0.40__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.
Files changed (115) hide show
  1. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/PKG-INFO +3 -3
  2. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metal_stack_api.egg-info/PKG-INFO +3 -3
  3. metal_stack_api-0.0.40/metal_stack_api.egg-info/requires.txt +2 -0
  4. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/filesystem_connect.py +8 -7
  5. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/filesystem_pb2.py +3 -3
  6. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/image_connect.py +9 -8
  7. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/image_pb2.py +3 -3
  8. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/ip_connect.py +6 -5
  9. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/ip_pb2.py +3 -3
  10. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/machine_connect.py +7 -6
  11. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/machine_pb2.py +3 -3
  12. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/network_connect.py +10 -9
  13. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/network_pb2.py +3 -3
  14. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/partition_connect.py +9 -8
  15. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/partition_pb2.py +3 -3
  16. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/project_connect.py +6 -5
  17. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/project_pb2.py +3 -3
  18. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/size_connect.py +8 -7
  19. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/size_pb2.py +3 -3
  20. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/switch_connect.py +11 -10
  21. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/switch_pb2.py +3 -3
  22. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/tenant_connect.py +7 -6
  23. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/tenant_pb2.py +3 -3
  24. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/token_connect.py +8 -7
  25. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/token_pb2.py +3 -3
  26. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/vpn_connect.py +7 -6
  27. metal_stack_api-0.0.40/metalstack/admin/v2/vpn_pb2.py +58 -0
  28. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/vpn_pb2.pyi +13 -4
  29. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/common_pb2.py +3 -3
  30. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/filesystem_connect.py +8 -7
  31. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/filesystem_pb2.py +3 -3
  32. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/health_connect.py +6 -5
  33. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/health_pb2.py +3 -3
  34. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/image_connect.py +8 -7
  35. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/image_pb2.py +3 -3
  36. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/ip_connect.py +10 -9
  37. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/ip_pb2.py +3 -3
  38. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/machine_connect.py +10 -9
  39. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/machine_pb2.py +3 -3
  40. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/method_connect.py +7 -6
  41. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/method_pb2.py +3 -3
  42. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/network_connect.py +11 -10
  43. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/network_pb2.py +3 -3
  44. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/partition_connect.py +7 -6
  45. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/partition_pb2.py +3 -3
  46. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/predefined_rules_pb2.py +3 -3
  47. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/project_connect.py +18 -17
  48. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/project_pb2.py +3 -3
  49. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/size_connect.py +7 -6
  50. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/size_pb2.py +3 -3
  51. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/switch_pb2.py +3 -3
  52. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/tenant_connect.py +18 -17
  53. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/tenant_pb2.py +3 -3
  54. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/token_connect.py +11 -10
  55. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/token_pb2.py +3 -3
  56. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/user_connect.py +6 -5
  57. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/user_pb2.py +3 -3
  58. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/version_connect.py +6 -5
  59. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/version_pb2.py +3 -3
  60. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/vpn_pb2.py +3 -3
  61. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/bmc_connect.py +7 -6
  62. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/bmc_pb2.py +3 -3
  63. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/event_connect.py +6 -5
  64. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/event_pb2.py +3 -3
  65. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/switch_connect.py +8 -7
  66. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/switch_pb2.py +3 -3
  67. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/setup.py +2 -2
  68. metal_stack_api-0.0.39/metal_stack_api.egg-info/requires.txt +0 -2
  69. metal_stack_api-0.0.39/metalstack/admin/v2/vpn_pb2.py +0 -55
  70. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/README.md +0 -0
  71. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metal_stack_api.egg-info/SOURCES.txt +0 -0
  72. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metal_stack_api.egg-info/dependency_links.txt +0 -0
  73. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metal_stack_api.egg-info/top_level.txt +0 -0
  74. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/__init__.py +0 -0
  75. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/__init__.py +0 -0
  76. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/__init__.py +0 -0
  77. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/filesystem_pb2.pyi +0 -0
  78. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/image_pb2.pyi +0 -0
  79. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/ip_pb2.pyi +0 -0
  80. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/machine_pb2.pyi +0 -0
  81. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/network_pb2.pyi +0 -0
  82. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/partition_pb2.pyi +0 -0
  83. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/project_pb2.pyi +0 -0
  84. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/size_pb2.pyi +0 -0
  85. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/switch_pb2.pyi +0 -0
  86. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/tenant_pb2.pyi +0 -0
  87. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/admin/v2/token_pb2.pyi +0 -0
  88. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/__init__.py +0 -0
  89. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/__init__.py +0 -0
  90. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/common_pb2.pyi +0 -0
  91. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/filesystem_pb2.pyi +0 -0
  92. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/health_pb2.pyi +0 -0
  93. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/image_pb2.pyi +0 -0
  94. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/ip_pb2.pyi +0 -0
  95. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/machine_pb2.pyi +0 -0
  96. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/method_pb2.pyi +0 -0
  97. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/network_pb2.pyi +0 -0
  98. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/partition_pb2.pyi +0 -0
  99. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/predefined_rules_pb2.pyi +0 -0
  100. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/project_pb2.pyi +0 -0
  101. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/size_pb2.pyi +0 -0
  102. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/switch_pb2.pyi +0 -0
  103. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/tenant_pb2.pyi +0 -0
  104. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/token_pb2.pyi +0 -0
  105. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/user_pb2.pyi +0 -0
  106. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/version_pb2.pyi +0 -0
  107. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/api/v2/vpn_pb2.pyi +0 -0
  108. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/client/__init__.py +0 -0
  109. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/client/client.py +0 -0
  110. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/__init__.py +0 -0
  111. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/__init__.py +0 -0
  112. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/bmc_pb2.pyi +0 -0
  113. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/event_pb2.pyi +0 -0
  114. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/metalstack/infra/v2/switch_pb2.pyi +0 -0
  115. {metal_stack_api-0.0.39 → metal_stack_api-0.0.40}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.0.39
3
+ Version: 0.0.40
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: connect-python>=0.5.0
17
- Requires-Dist: protovalidate>=1.0.0
16
+ Requires-Dist: connect-python>=0.7.0
17
+ Requires-Dist: protovalidate>=1.1.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.0.39
3
+ Version: 0.0.40
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: connect-python>=0.5.0
17
- Requires-Dist: protovalidate>=1.0.0
16
+ Requires-Dist: connect-python>=0.7.0
17
+ Requires-Dist: protovalidate>=1.1.0
18
18
  Dynamic: author
19
19
  Dynamic: classifier
20
20
  Dynamic: description
@@ -0,0 +1,2 @@
1
+ connect-python>=0.7.0
2
+ protovalidate>=1.1.0
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/filesystem.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -26,10 +26,11 @@ class FilesystemService(Protocol):
26
26
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
27
27
 
28
28
 
29
- class FilesystemServiceASGIApplication(ConnectASGIApplication):
30
- def __init__(self, service: FilesystemService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
29
+ class FilesystemServiceASGIApplication(ConnectASGIApplication[FilesystemService]):
30
+ def __init__(self, service: FilesystemService | AsyncGenerator[FilesystemService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
31
31
  super().__init__(
32
- endpoints={
32
+ service=service,
33
+ endpoints=lambda svc: {
33
34
  "/metalstack.admin.v2.FilesystemService/Create": Endpoint.unary(
34
35
  method=MethodInfo(
35
36
  name="Create",
@@ -38,7 +39,7 @@ class FilesystemServiceASGIApplication(ConnectASGIApplication):
38
39
  output=metalstack_dot_admin_dot_v2_dot_filesystem__pb2.FilesystemServiceCreateResponse,
39
40
  idempotency_level=IdempotencyLevel.UNKNOWN,
40
41
  ),
41
- function=service.create,
42
+ function=svc.create,
42
43
  ),
43
44
  "/metalstack.admin.v2.FilesystemService/Update": Endpoint.unary(
44
45
  method=MethodInfo(
@@ -48,7 +49,7 @@ class FilesystemServiceASGIApplication(ConnectASGIApplication):
48
49
  output=metalstack_dot_admin_dot_v2_dot_filesystem__pb2.FilesystemServiceUpdateResponse,
49
50
  idempotency_level=IdempotencyLevel.UNKNOWN,
50
51
  ),
51
- function=service.update,
52
+ function=svc.update,
52
53
  ),
53
54
  "/metalstack.admin.v2.FilesystemService/Delete": Endpoint.unary(
54
55
  method=MethodInfo(
@@ -58,7 +59,7 @@ class FilesystemServiceASGIApplication(ConnectASGIApplication):
58
59
  output=metalstack_dot_admin_dot_v2_dot_filesystem__pb2.FilesystemServiceDeleteResponse,
59
60
  idempotency_level=IdempotencyLevel.UNKNOWN,
60
61
  ),
61
- function=service.delete,
62
+ function=svc.delete,
62
63
  ),
63
64
  },
64
65
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/filesystem.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/filesystem.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/image.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -29,10 +29,11 @@ class ImageService(Protocol):
29
29
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
30
30
 
31
31
 
32
- class ImageServiceASGIApplication(ConnectASGIApplication):
33
- def __init__(self, service: ImageService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
32
+ class ImageServiceASGIApplication(ConnectASGIApplication[ImageService]):
33
+ def __init__(self, service: ImageService | AsyncGenerator[ImageService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
34
34
  super().__init__(
35
- endpoints={
35
+ service=service,
36
+ endpoints=lambda svc: {
36
37
  "/metalstack.admin.v2.ImageService/Create": Endpoint.unary(
37
38
  method=MethodInfo(
38
39
  name="Create",
@@ -41,7 +42,7 @@ class ImageServiceASGIApplication(ConnectASGIApplication):
41
42
  output=metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceCreateResponse,
42
43
  idempotency_level=IdempotencyLevel.UNKNOWN,
43
44
  ),
44
- function=service.create,
45
+ function=svc.create,
45
46
  ),
46
47
  "/metalstack.admin.v2.ImageService/Update": Endpoint.unary(
47
48
  method=MethodInfo(
@@ -51,7 +52,7 @@ class ImageServiceASGIApplication(ConnectASGIApplication):
51
52
  output=metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceUpdateResponse,
52
53
  idempotency_level=IdempotencyLevel.UNKNOWN,
53
54
  ),
54
- function=service.update,
55
+ function=svc.update,
55
56
  ),
56
57
  "/metalstack.admin.v2.ImageService/Delete": Endpoint.unary(
57
58
  method=MethodInfo(
@@ -61,7 +62,7 @@ class ImageServiceASGIApplication(ConnectASGIApplication):
61
62
  output=metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceDeleteResponse,
62
63
  idempotency_level=IdempotencyLevel.UNKNOWN,
63
64
  ),
64
- function=service.delete,
65
+ function=svc.delete,
65
66
  ),
66
67
  "/metalstack.admin.v2.ImageService/Usage": Endpoint.unary(
67
68
  method=MethodInfo(
@@ -71,7 +72,7 @@ class ImageServiceASGIApplication(ConnectASGIApplication):
71
72
  output=metalstack_dot_admin_dot_v2_dot_image__pb2.ImageServiceUsageResponse,
72
73
  idempotency_level=IdempotencyLevel.UNKNOWN,
73
74
  ),
74
- function=service.usage,
75
+ function=svc.usage,
75
76
  ),
76
77
  },
77
78
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/image.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/image.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/ip.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -20,10 +20,11 @@ class IPService(Protocol):
20
20
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
21
 
22
22
 
23
- class IPServiceASGIApplication(ConnectASGIApplication):
24
- def __init__(self, service: IPService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
23
+ class IPServiceASGIApplication(ConnectASGIApplication[IPService]):
24
+ def __init__(self, service: IPService | AsyncGenerator[IPService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
25
25
  super().__init__(
26
- endpoints={
26
+ service=service,
27
+ endpoints=lambda svc: {
27
28
  "/metalstack.admin.v2.IPService/List": Endpoint.unary(
28
29
  method=MethodInfo(
29
30
  name="List",
@@ -32,7 +33,7 @@ class IPServiceASGIApplication(ConnectASGIApplication):
32
33
  output=metalstack_dot_admin_dot_v2_dot_ip__pb2.IPServiceListResponse,
33
34
  idempotency_level=IdempotencyLevel.UNKNOWN,
34
35
  ),
35
- function=service.list,
36
+ function=svc.list,
36
37
  ),
37
38
  },
38
39
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/ip.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/ip.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/machine.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -23,10 +23,11 @@ class MachineService(Protocol):
23
23
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
24
 
25
25
 
26
- class MachineServiceASGIApplication(ConnectASGIApplication):
27
- def __init__(self, service: MachineService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
26
+ class MachineServiceASGIApplication(ConnectASGIApplication[MachineService]):
27
+ def __init__(self, service: MachineService | AsyncGenerator[MachineService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
28
28
  super().__init__(
29
- endpoints={
29
+ service=service,
30
+ endpoints=lambda svc: {
30
31
  "/metalstack.admin.v2.MachineService/Get": Endpoint.unary(
31
32
  method=MethodInfo(
32
33
  name="Get",
@@ -35,7 +36,7 @@ class MachineServiceASGIApplication(ConnectASGIApplication):
35
36
  output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceGetResponse,
36
37
  idempotency_level=IdempotencyLevel.UNKNOWN,
37
38
  ),
38
- function=service.get,
39
+ function=svc.get,
39
40
  ),
40
41
  "/metalstack.admin.v2.MachineService/List": Endpoint.unary(
41
42
  method=MethodInfo(
@@ -45,7 +46,7 @@ class MachineServiceASGIApplication(ConnectASGIApplication):
45
46
  output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceListResponse,
46
47
  idempotency_level=IdempotencyLevel.UNKNOWN,
47
48
  ),
48
- function=service.list,
49
+ function=svc.list,
49
50
  ),
50
51
  },
51
52
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/machine.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/machine.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/network.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -32,10 +32,11 @@ class NetworkService(Protocol):
32
32
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
33
33
 
34
34
 
35
- class NetworkServiceASGIApplication(ConnectASGIApplication):
36
- def __init__(self, service: NetworkService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
35
+ class NetworkServiceASGIApplication(ConnectASGIApplication[NetworkService]):
36
+ def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
37
37
  super().__init__(
38
- endpoints={
38
+ service=service,
39
+ endpoints=lambda svc: {
39
40
  "/metalstack.admin.v2.NetworkService/Get": Endpoint.unary(
40
41
  method=MethodInfo(
41
42
  name="Get",
@@ -44,7 +45,7 @@ class NetworkServiceASGIApplication(ConnectASGIApplication):
44
45
  output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceGetResponse,
45
46
  idempotency_level=IdempotencyLevel.UNKNOWN,
46
47
  ),
47
- function=service.get,
48
+ function=svc.get,
48
49
  ),
49
50
  "/metalstack.admin.v2.NetworkService/Create": Endpoint.unary(
50
51
  method=MethodInfo(
@@ -54,7 +55,7 @@ class NetworkServiceASGIApplication(ConnectASGIApplication):
54
55
  output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceCreateResponse,
55
56
  idempotency_level=IdempotencyLevel.UNKNOWN,
56
57
  ),
57
- function=service.create,
58
+ function=svc.create,
58
59
  ),
59
60
  "/metalstack.admin.v2.NetworkService/Update": Endpoint.unary(
60
61
  method=MethodInfo(
@@ -64,7 +65,7 @@ class NetworkServiceASGIApplication(ConnectASGIApplication):
64
65
  output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceUpdateResponse,
65
66
  idempotency_level=IdempotencyLevel.UNKNOWN,
66
67
  ),
67
- function=service.update,
68
+ function=svc.update,
68
69
  ),
69
70
  "/metalstack.admin.v2.NetworkService/Delete": Endpoint.unary(
70
71
  method=MethodInfo(
@@ -74,7 +75,7 @@ class NetworkServiceASGIApplication(ConnectASGIApplication):
74
75
  output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceDeleteResponse,
75
76
  idempotency_level=IdempotencyLevel.UNKNOWN,
76
77
  ),
77
- function=service.delete,
78
+ function=svc.delete,
78
79
  ),
79
80
  "/metalstack.admin.v2.NetworkService/List": Endpoint.unary(
80
81
  method=MethodInfo(
@@ -84,7 +85,7 @@ class NetworkServiceASGIApplication(ConnectASGIApplication):
84
85
  output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListResponse,
85
86
  idempotency_level=IdempotencyLevel.UNKNOWN,
86
87
  ),
87
- function=service.list,
88
+ function=svc.list,
88
89
  ),
89
90
  },
90
91
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/network.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/network.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/partition.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -29,10 +29,11 @@ class PartitionService(Protocol):
29
29
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
30
30
 
31
31
 
32
- class PartitionServiceASGIApplication(ConnectASGIApplication):
33
- def __init__(self, service: PartitionService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
32
+ class PartitionServiceASGIApplication(ConnectASGIApplication[PartitionService]):
33
+ def __init__(self, service: PartitionService | AsyncGenerator[PartitionService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
34
34
  super().__init__(
35
- endpoints={
35
+ service=service,
36
+ endpoints=lambda svc: {
36
37
  "/metalstack.admin.v2.PartitionService/Create": Endpoint.unary(
37
38
  method=MethodInfo(
38
39
  name="Create",
@@ -41,7 +42,7 @@ class PartitionServiceASGIApplication(ConnectASGIApplication):
41
42
  output=metalstack_dot_admin_dot_v2_dot_partition__pb2.PartitionServiceCreateResponse,
42
43
  idempotency_level=IdempotencyLevel.UNKNOWN,
43
44
  ),
44
- function=service.create,
45
+ function=svc.create,
45
46
  ),
46
47
  "/metalstack.admin.v2.PartitionService/Update": Endpoint.unary(
47
48
  method=MethodInfo(
@@ -51,7 +52,7 @@ class PartitionServiceASGIApplication(ConnectASGIApplication):
51
52
  output=metalstack_dot_admin_dot_v2_dot_partition__pb2.PartitionServiceUpdateResponse,
52
53
  idempotency_level=IdempotencyLevel.UNKNOWN,
53
54
  ),
54
- function=service.update,
55
+ function=svc.update,
55
56
  ),
56
57
  "/metalstack.admin.v2.PartitionService/Delete": Endpoint.unary(
57
58
  method=MethodInfo(
@@ -61,7 +62,7 @@ class PartitionServiceASGIApplication(ConnectASGIApplication):
61
62
  output=metalstack_dot_admin_dot_v2_dot_partition__pb2.PartitionServiceDeleteResponse,
62
63
  idempotency_level=IdempotencyLevel.UNKNOWN,
63
64
  ),
64
- function=service.delete,
65
+ function=svc.delete,
65
66
  ),
66
67
  "/metalstack.admin.v2.PartitionService/Capacity": Endpoint.unary(
67
68
  method=MethodInfo(
@@ -71,7 +72,7 @@ class PartitionServiceASGIApplication(ConnectASGIApplication):
71
72
  output=metalstack_dot_admin_dot_v2_dot_partition__pb2.PartitionServiceCapacityResponse,
72
73
  idempotency_level=IdempotencyLevel.UNKNOWN,
73
74
  ),
74
- function=service.capacity,
75
+ function=svc.capacity,
75
76
  ),
76
77
  },
77
78
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/partition.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/partition.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/project.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -20,10 +20,11 @@ class ProjectService(Protocol):
20
20
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
21
 
22
22
 
23
- class ProjectServiceASGIApplication(ConnectASGIApplication):
24
- def __init__(self, service: ProjectService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
23
+ class ProjectServiceASGIApplication(ConnectASGIApplication[ProjectService]):
24
+ def __init__(self, service: ProjectService | AsyncGenerator[ProjectService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
25
25
  super().__init__(
26
- endpoints={
26
+ service=service,
27
+ endpoints=lambda svc: {
27
28
  "/metalstack.admin.v2.ProjectService/List": Endpoint.unary(
28
29
  method=MethodInfo(
29
30
  name="List",
@@ -32,7 +33,7 @@ class ProjectServiceASGIApplication(ConnectASGIApplication):
32
33
  output=metalstack_dot_admin_dot_v2_dot_project__pb2.ProjectServiceListResponse,
33
34
  idempotency_level=IdempotencyLevel.UNKNOWN,
34
35
  ),
35
- function=service.list,
36
+ function=svc.list,
36
37
  ),
37
38
  },
38
39
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/project.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/project.proto'
19
19
  )
@@ -2,7 +2,7 @@
2
2
  # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/admin/v2/size.proto
4
4
 
5
- from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
8
  from connectrpc.client import ConnectClient, ConnectClientSync
@@ -26,10 +26,11 @@ class SizeService(Protocol):
26
26
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
27
27
 
28
28
 
29
- class SizeServiceASGIApplication(ConnectASGIApplication):
30
- def __init__(self, service: SizeService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
29
+ class SizeServiceASGIApplication(ConnectASGIApplication[SizeService]):
30
+ def __init__(self, service: SizeService | AsyncGenerator[SizeService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
31
31
  super().__init__(
32
- endpoints={
32
+ service=service,
33
+ endpoints=lambda svc: {
33
34
  "/metalstack.admin.v2.SizeService/Create": Endpoint.unary(
34
35
  method=MethodInfo(
35
36
  name="Create",
@@ -38,7 +39,7 @@ class SizeServiceASGIApplication(ConnectASGIApplication):
38
39
  output=metalstack_dot_admin_dot_v2_dot_size__pb2.SizeServiceCreateResponse,
39
40
  idempotency_level=IdempotencyLevel.UNKNOWN,
40
41
  ),
41
- function=service.create,
42
+ function=svc.create,
42
43
  ),
43
44
  "/metalstack.admin.v2.SizeService/Update": Endpoint.unary(
44
45
  method=MethodInfo(
@@ -48,7 +49,7 @@ class SizeServiceASGIApplication(ConnectASGIApplication):
48
49
  output=metalstack_dot_admin_dot_v2_dot_size__pb2.SizeServiceUpdateResponse,
49
50
  idempotency_level=IdempotencyLevel.UNKNOWN,
50
51
  ),
51
- function=service.update,
52
+ function=svc.update,
52
53
  ),
53
54
  "/metalstack.admin.v2.SizeService/Delete": Endpoint.unary(
54
55
  method=MethodInfo(
@@ -58,7 +59,7 @@ class SizeServiceASGIApplication(ConnectASGIApplication):
58
59
  output=metalstack_dot_admin_dot_v2_dot_size__pb2.SizeServiceDeleteResponse,
59
60
  idempotency_level=IdempotencyLevel.UNKNOWN,
60
61
  ),
61
- function=service.delete,
62
+ function=svc.delete,
62
63
  ),
63
64
  },
64
65
  interceptors=interceptors,
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: metalstack/admin/v2/size.proto
5
- # Protobuf Python Version: 6.32.1
5
+ # Protobuf Python Version: 6.33.4
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
- 32,
16
- 1,
15
+ 33,
16
+ 4,
17
17
  '',
18
18
  'metalstack/admin/v2/size.proto'
19
19
  )