metal-stack-api 0.1.7__tar.gz → 0.2.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.
Files changed (147) hide show
  1. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/PKG-INFO +1 -1
  2. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metal_stack_api.egg-info/PKG-INFO +1 -1
  3. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/machine_connect.py +65 -0
  4. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/machine_pb2.py +9 -3
  5. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/machine_pb2.pyi +12 -0
  6. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/project_pb2.py +7 -9
  7. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/project_pb2.pyi +4 -6
  8. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/tenant_connect.py +130 -0
  9. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/tenant_pb2.py +26 -4
  10. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/tenant_pb2.pyi +26 -0
  11. metal_stack_api-0.2.1/metalstack/api/v2/common_pb2.py +79 -0
  12. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/common_pb2.pyi +8 -0
  13. metal_stack_api-0.2.1/metalstack/api/v2/machine_pb2.py +567 -0
  14. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/machine_pb2.pyi +79 -0
  15. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/project_pb2.py +63 -59
  16. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/project_pb2.pyi +10 -4
  17. metal_stack_api-0.1.7/metalstack/api/v2/common_pb2.py +0 -73
  18. metal_stack_api-0.1.7/metalstack/api/v2/machine_pb2.py +0 -508
  19. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/README.md +0 -0
  20. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metal_stack_api.egg-info/SOURCES.txt +0 -0
  21. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metal_stack_api.egg-info/dependency_links.txt +0 -0
  22. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metal_stack_api.egg-info/requires.txt +0 -0
  23. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metal_stack_api.egg-info/top_level.txt +0 -0
  24. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/__init__.py +0 -0
  25. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/__init__.py +0 -0
  26. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/__init__.py +0 -0
  27. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/audit_connect.py +0 -0
  28. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/audit_pb2.py +0 -0
  29. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/audit_pb2.pyi +0 -0
  30. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/component_connect.py +0 -0
  31. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/component_pb2.py +0 -0
  32. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/component_pb2.pyi +0 -0
  33. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/filesystem_connect.py +0 -0
  34. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/filesystem_pb2.py +0 -0
  35. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/filesystem_pb2.pyi +0 -0
  36. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/image_connect.py +0 -0
  37. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/image_pb2.py +0 -0
  38. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/image_pb2.pyi +0 -0
  39. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/ip_connect.py +0 -0
  40. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/ip_pb2.py +0 -0
  41. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/ip_pb2.pyi +0 -0
  42. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/network_connect.py +0 -0
  43. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/network_pb2.py +0 -0
  44. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/network_pb2.pyi +0 -0
  45. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/partition_connect.py +0 -0
  46. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/partition_pb2.py +0 -0
  47. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/partition_pb2.pyi +0 -0
  48. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/project_connect.py +0 -0
  49. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_connect.py +0 -0
  50. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_imageconstraint_connect.py +0 -0
  51. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_imageconstraint_pb2.py +0 -0
  52. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_imageconstraint_pb2.pyi +0 -0
  53. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_pb2.py +0 -0
  54. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_pb2.pyi +0 -0
  55. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_reservation_connect.py +0 -0
  56. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_reservation_pb2.py +0 -0
  57. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/size_reservation_pb2.pyi +0 -0
  58. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/switch_connect.py +0 -0
  59. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/switch_pb2.py +0 -0
  60. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/switch_pb2.pyi +0 -0
  61. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/task_connect.py +0 -0
  62. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/task_pb2.py +0 -0
  63. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/task_pb2.pyi +0 -0
  64. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/token_connect.py +0 -0
  65. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/token_pb2.py +0 -0
  66. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/token_pb2.pyi +0 -0
  67. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/vpn_connect.py +0 -0
  68. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/vpn_pb2.py +0 -0
  69. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/admin/v2/vpn_pb2.pyi +0 -0
  70. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/__init__.py +0 -0
  71. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/__init__.py +0 -0
  72. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/audit_connect.py +0 -0
  73. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/audit_pb2.py +0 -0
  74. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/audit_pb2.pyi +0 -0
  75. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/component_pb2.py +0 -0
  76. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/component_pb2.pyi +0 -0
  77. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/filesystem_connect.py +0 -0
  78. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/filesystem_pb2.py +0 -0
  79. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/filesystem_pb2.pyi +0 -0
  80. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/health_connect.py +0 -0
  81. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/health_pb2.py +0 -0
  82. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/health_pb2.pyi +0 -0
  83. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/image_connect.py +0 -0
  84. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/image_pb2.py +0 -0
  85. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/image_pb2.pyi +0 -0
  86. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/ip_connect.py +0 -0
  87. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/ip_pb2.py +0 -0
  88. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/ip_pb2.pyi +0 -0
  89. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/machine_connect.py +0 -0
  90. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/method_connect.py +0 -0
  91. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/method_pb2.py +0 -0
  92. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/method_pb2.pyi +0 -0
  93. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/network_connect.py +0 -0
  94. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/network_pb2.py +0 -0
  95. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/network_pb2.pyi +0 -0
  96. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/partition_connect.py +0 -0
  97. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/partition_pb2.py +0 -0
  98. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/partition_pb2.pyi +0 -0
  99. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/predefined_rules_pb2.py +0 -0
  100. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/predefined_rules_pb2.pyi +0 -0
  101. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/project_connect.py +0 -0
  102. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_connect.py +0 -0
  103. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_imageconstraint_connect.py +0 -0
  104. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_imageconstraint_pb2.py +0 -0
  105. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_imageconstraint_pb2.pyi +0 -0
  106. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_pb2.py +0 -0
  107. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_pb2.pyi +0 -0
  108. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_reservation_connect.py +0 -0
  109. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_reservation_pb2.py +0 -0
  110. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/size_reservation_pb2.pyi +0 -0
  111. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/switch_pb2.py +0 -0
  112. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/switch_pb2.pyi +0 -0
  113. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/tenant_connect.py +0 -0
  114. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/tenant_pb2.py +0 -0
  115. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/tenant_pb2.pyi +0 -0
  116. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/token_connect.py +0 -0
  117. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/token_pb2.py +0 -0
  118. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/token_pb2.pyi +0 -0
  119. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/user_connect.py +0 -0
  120. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/user_pb2.py +0 -0
  121. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/user_pb2.pyi +0 -0
  122. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/version_connect.py +0 -0
  123. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/version_pb2.py +0 -0
  124. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/version_pb2.pyi +0 -0
  125. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/vpn_pb2.py +0 -0
  126. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/api/v2/vpn_pb2.pyi +0 -0
  127. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/client/__init__.py +0 -0
  128. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/client/client.py +0 -0
  129. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/__init__.py +0 -0
  130. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/__init__.py +0 -0
  131. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/bmc_connect.py +0 -0
  132. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/bmc_pb2.py +0 -0
  133. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/bmc_pb2.pyi +0 -0
  134. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/boot_connect.py +0 -0
  135. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/boot_pb2.py +0 -0
  136. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/boot_pb2.pyi +0 -0
  137. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/component_connect.py +0 -0
  138. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/component_pb2.py +0 -0
  139. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/component_pb2.pyi +0 -0
  140. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/event_connect.py +0 -0
  141. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/event_pb2.py +0 -0
  142. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/event_pb2.pyi +0 -0
  143. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/switch_connect.py +0 -0
  144. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/switch_pb2.py +0 -0
  145. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/metalstack/infra/v2/switch_pb2.pyi +0 -0
  146. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/setup.cfg +0 -0
  147. {metal_stack_api-0.1.7 → metal_stack_api-0.2.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.1.7
3
+ Version: 0.2.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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.1.7
3
+ Version: 0.2.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
@@ -42,6 +42,9 @@ class MachineService(Protocol):
42
42
  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:
43
43
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
44
44
 
45
+ async def issues(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse:
46
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
47
+
45
48
 
46
49
  class MachineServiceASGIApplication(ConnectASGIApplication[MachineService]):
47
50
  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:
@@ -128,6 +131,16 @@ class MachineServiceASGIApplication(ConnectASGIApplication[MachineService]):
128
131
  ),
129
132
  function=svc.set_state,
130
133
  ),
134
+ "/metalstack.admin.v2.MachineService/Issues": Endpoint.unary(
135
+ method=MethodInfo(
136
+ name="Issues",
137
+ service_name="metalstack.admin.v2.MachineService",
138
+ input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
139
+ output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse,
140
+ idempotency_level=IdempotencyLevel.UNKNOWN,
141
+ ),
142
+ function=svc.issues,
143
+ ),
131
144
  },
132
145
  interceptors=interceptors,
133
146
  read_max_bytes=read_max_bytes,
@@ -302,6 +315,26 @@ class MachineServiceClient(ConnectClient):
302
315
  timeout_ms=timeout_ms,
303
316
  )
304
317
 
318
+ async def issues(
319
+ self,
320
+ request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
321
+ *,
322
+ headers: Headers | Mapping[str, str] | None = None,
323
+ timeout_ms: int | None = None,
324
+ ) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse:
325
+ return await self.execute_unary(
326
+ request=request,
327
+ method=MethodInfo(
328
+ name="Issues",
329
+ service_name="metalstack.admin.v2.MachineService",
330
+ input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
331
+ output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse,
332
+ idempotency_level=IdempotencyLevel.UNKNOWN,
333
+ ),
334
+ headers=headers,
335
+ timeout_ms=timeout_ms,
336
+ )
337
+
305
338
 
306
339
 
307
340
 
@@ -323,6 +356,8 @@ class MachineServiceSync(Protocol):
323
356
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
324
357
  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:
325
358
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
359
+ def issues(self, request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse:
360
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
326
361
 
327
362
 
328
363
  class MachineServiceWSGIApplication(ConnectWSGIApplication):
@@ -409,6 +444,16 @@ class MachineServiceWSGIApplication(ConnectWSGIApplication):
409
444
  ),
410
445
  function=service.set_state,
411
446
  ),
447
+ "/metalstack.admin.v2.MachineService/Issues": EndpointSync.unary(
448
+ method=MethodInfo(
449
+ name="Issues",
450
+ service_name="metalstack.admin.v2.MachineService",
451
+ input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
452
+ output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse,
453
+ idempotency_level=IdempotencyLevel.UNKNOWN,
454
+ ),
455
+ function=service.issues,
456
+ ),
412
457
  },
413
458
  interceptors=interceptors,
414
459
  read_max_bytes=read_max_bytes,
@@ -583,4 +628,24 @@ class MachineServiceClientSync(ConnectClientSync):
583
628
  timeout_ms=timeout_ms,
584
629
  )
585
630
 
631
+ def issues(
632
+ self,
633
+ request: metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
634
+ *,
635
+ headers: Headers | Mapping[str, str] | None = None,
636
+ timeout_ms: int | None = None,
637
+ ) -> metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse:
638
+ return self.execute_unary(
639
+ request=request,
640
+ method=MethodInfo(
641
+ name="Issues",
642
+ service_name="metalstack.admin.v2.MachineService",
643
+ input=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesRequest,
644
+ output=metalstack_dot_admin_dot_v2_dot_machine__pb2.MachineServiceIssuesResponse,
645
+ idempotency_level=IdempotencyLevel.UNKNOWN,
646
+ ),
647
+ headers=headers,
648
+ timeout_ms=timeout_ms,
649
+ )
650
+
586
651
 
@@ -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\";\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\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\x88\x08\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\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.MachineServiceDeleteRequest\x1a\x31.metalstack.admin.v2.MachineServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\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')
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\";\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\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\x07machine\"Z\n\x1bMachineServiceIssuesRequest\x12;\n\x05query\x18\x01 \x01(\x0b\x32%.metalstack.api.v2.MachineIssuesQueryR\x05query\"X\n\x1cMachineServiceIssuesResponse\x12\x38\n\x06issues\x18\x01 \x03(\x0b\x32 .metalstack.api.v2.MachineIssuesR\x06issues2\x83\t\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\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.MachineServiceDeleteRequest\x1a\x31.metalstack.admin.v2.MachineServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\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\x12y\n\x06Issues\x12\x30.metalstack.admin.v2.MachineServiceIssuesRequest\x1a\x31.metalstack.admin.v2.MachineServiceIssuesResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\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)
@@ -82,6 +82,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
82
82
  _globals['_MACHINESERVICE'].methods_by_name['ConsolePassword']._serialized_options = b'\322\363\030\002\001\002\340\363\030\001'
83
83
  _globals['_MACHINESERVICE'].methods_by_name['SetState']._loaded_options = None
84
84
  _globals['_MACHINESERVICE'].methods_by_name['SetState']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
85
+ _globals['_MACHINESERVICE'].methods_by_name['Issues']._loaded_options = None
86
+ _globals['_MACHINESERVICE'].methods_by_name['Issues']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
85
87
  _globals['_MACHINESERVICEGETREQUEST']._serialized_start=194
86
88
  _globals['_MACHINESERVICEGETREQUEST']._serialized_end=250
87
89
  _globals['_MACHINESERVICEGETRESPONSE']._serialized_start=252
@@ -116,6 +118,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
116
118
  _globals['_MACHINESERVICESETSTATEREQUEST']._serialized_end=1788
117
119
  _globals['_MACHINESERVICESETSTATERESPONSE']._serialized_start=1790
118
120
  _globals['_MACHINESERVICESETSTATERESPONSE']._serialized_end=1876
119
- _globals['_MACHINESERVICE']._serialized_start=1879
120
- _globals['_MACHINESERVICE']._serialized_end=2911
121
+ _globals['_MACHINESERVICEISSUESREQUEST']._serialized_start=1878
122
+ _globals['_MACHINESERVICEISSUESREQUEST']._serialized_end=1968
123
+ _globals['_MACHINESERVICEISSUESRESPONSE']._serialized_start=1970
124
+ _globals['_MACHINESERVICEISSUESRESPONSE']._serialized_end=2058
125
+ _globals['_MACHINESERVICE']._serialized_start=2061
126
+ _globals['_MACHINESERVICE']._serialized_end=3216
121
127
  # @@protoc_insertion_point(module_scope)
@@ -124,3 +124,15 @@ class MachineServiceSetStateResponse(_message.Message):
124
124
  MACHINE_FIELD_NUMBER: _ClassVar[int]
125
125
  machine: _machine_pb2.Machine
126
126
  def __init__(self, machine: _Optional[_Union[_machine_pb2.Machine, _Mapping]] = ...) -> None: ...
127
+
128
+ class MachineServiceIssuesRequest(_message.Message):
129
+ __slots__ = ("query",)
130
+ QUERY_FIELD_NUMBER: _ClassVar[int]
131
+ query: _machine_pb2.MachineIssuesQuery
132
+ def __init__(self, query: _Optional[_Union[_machine_pb2.MachineIssuesQuery, _Mapping]] = ...) -> None: ...
133
+
134
+ class MachineServiceIssuesResponse(_message.Message):
135
+ __slots__ = ("issues",)
136
+ ISSUES_FIELD_NUMBER: _ClassVar[int]
137
+ issues: _containers.RepeatedCompositeFieldContainer[_machine_pb2.MachineIssues]
138
+ def __init__(self, issues: _Optional[_Iterable[_Union[_machine_pb2.MachineIssues, _Mapping]]] = ...) -> None: ...
@@ -28,7 +28,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_
28
28
  from metalstack.api.v2 import project_pb2 as metalstack_dot_api_dot_v2_dot_project__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1fmetalstack/api/v2/project.proto\"\x93\x01\n\x19ProjectServiceListRequest\x12(\n\x06tenant\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x06tenant\x88\x01\x01\x12\x36\n\x06labels\x18\x02 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x01R\x06labels\x88\x01\x01\x42\t\n\x07_tenantB\t\n\x07_labels\"T\n\x1aProjectServiceListResponse\x12\x36\n\x08projects\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x08projects2\x85\x01\n\x0eProjectService\x12s\n\x04List\x12..metalstack.admin.v2.ProjectServiceListRequest\x1a/.metalstack.admin.v2.ProjectServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cProjectProtoP\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')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1fmetalstack/api/v2/project.proto\"a\n\x19ProjectServiceListRequest\x12:\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.ProjectQueryH\x00R\x05query\x88\x01\x01\x42\x08\n\x06_query\"T\n\x1aProjectServiceListResponse\x12\x36\n\x08projects\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x08projects2\x85\x01\n\x0eProjectService\x12s\n\x04List\x12..metalstack.admin.v2.ProjectServiceListRequest\x1a/.metalstack.admin.v2.ProjectServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cProjectProtoP\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)
@@ -36,14 +36,12 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.admin.v2.project
36
36
  if not _descriptor._USE_C_DESCRIPTORS:
37
37
  _globals['DESCRIPTOR']._loaded_options = None
38
38
  _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.admin.v2B\014ProjectProtoP\001Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\242\002\003MAX\252\002\023Metalstack.Admin.V2\312\002\023Metalstack\\Admin\\V2\342\002\037Metalstack\\Admin\\V2\\GPBMetadata\352\002\025Metalstack::Admin::V2'
39
- _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['tenant']._loaded_options = None
40
- _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['tenant']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
41
39
  _globals['_PROJECTSERVICE'].methods_by_name['List']._loaded_options = None
42
40
  _globals['_PROJECTSERVICE'].methods_by_name['List']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
43
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=195
44
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=342
45
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=344
46
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=428
47
- _globals['_PROJECTSERVICE']._serialized_start=431
48
- _globals['_PROJECTSERVICE']._serialized_end=564
41
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=194
42
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=291
43
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=293
44
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=377
45
+ _globals['_PROJECTSERVICE']._serialized_start=380
46
+ _globals['_PROJECTSERVICE']._serialized_end=513
49
47
  # @@protoc_insertion_point(module_scope)
@@ -11,12 +11,10 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
11
11
  DESCRIPTOR: _descriptor.FileDescriptor
12
12
 
13
13
  class ProjectServiceListRequest(_message.Message):
14
- __slots__ = ("tenant", "labels")
15
- TENANT_FIELD_NUMBER: _ClassVar[int]
16
- LABELS_FIELD_NUMBER: _ClassVar[int]
17
- tenant: str
18
- labels: _common_pb2.Labels
19
- def __init__(self, tenant: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ...) -> None: ...
14
+ __slots__ = ("query",)
15
+ QUERY_FIELD_NUMBER: _ClassVar[int]
16
+ query: _project_pb2.ProjectQuery
17
+ def __init__(self, query: _Optional[_Union[_project_pb2.ProjectQuery, _Mapping]] = ...) -> None: ...
20
18
 
21
19
  class ProjectServiceListResponse(_message.Message):
22
20
  __slots__ = ("projects",)
@@ -24,6 +24,12 @@ class TenantService(Protocol):
24
24
  async def list(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceListRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceListResponse:
25
25
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
26
26
 
27
+ async def add_member(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse:
28
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
29
+
30
+ async def remove_member(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse:
31
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
32
+
27
33
 
28
34
  class TenantServiceASGIApplication(ConnectASGIApplication[TenantService]):
29
35
  def __init__(self, service: TenantService | AsyncGenerator[TenantService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None:
@@ -50,6 +56,26 @@ class TenantServiceASGIApplication(ConnectASGIApplication[TenantService]):
50
56
  ),
51
57
  function=svc.list,
52
58
  ),
59
+ "/metalstack.admin.v2.TenantService/AddMember": Endpoint.unary(
60
+ method=MethodInfo(
61
+ name="AddMember",
62
+ service_name="metalstack.admin.v2.TenantService",
63
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
64
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse,
65
+ idempotency_level=IdempotencyLevel.UNKNOWN,
66
+ ),
67
+ function=svc.add_member,
68
+ ),
69
+ "/metalstack.admin.v2.TenantService/RemoveMember": Endpoint.unary(
70
+ method=MethodInfo(
71
+ name="RemoveMember",
72
+ service_name="metalstack.admin.v2.TenantService",
73
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
74
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse,
75
+ idempotency_level=IdempotencyLevel.UNKNOWN,
76
+ ),
77
+ function=svc.remove_member,
78
+ ),
53
79
  },
54
80
  interceptors=interceptors,
55
81
  read_max_bytes=read_max_bytes,
@@ -104,6 +130,46 @@ class TenantServiceClient(ConnectClient):
104
130
  timeout_ms=timeout_ms,
105
131
  )
106
132
 
133
+ async def add_member(
134
+ self,
135
+ request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
136
+ *,
137
+ headers: Headers | Mapping[str, str] | None = None,
138
+ timeout_ms: int | None = None,
139
+ ) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse:
140
+ return await self.execute_unary(
141
+ request=request,
142
+ method=MethodInfo(
143
+ name="AddMember",
144
+ service_name="metalstack.admin.v2.TenantService",
145
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
146
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse,
147
+ idempotency_level=IdempotencyLevel.UNKNOWN,
148
+ ),
149
+ headers=headers,
150
+ timeout_ms=timeout_ms,
151
+ )
152
+
153
+ async def remove_member(
154
+ self,
155
+ request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
156
+ *,
157
+ headers: Headers | Mapping[str, str] | None = None,
158
+ timeout_ms: int | None = None,
159
+ ) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse:
160
+ return await self.execute_unary(
161
+ request=request,
162
+ method=MethodInfo(
163
+ name="RemoveMember",
164
+ service_name="metalstack.admin.v2.TenantService",
165
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
166
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse,
167
+ idempotency_level=IdempotencyLevel.UNKNOWN,
168
+ ),
169
+ headers=headers,
170
+ timeout_ms=timeout_ms,
171
+ )
172
+
107
173
 
108
174
 
109
175
 
@@ -113,6 +179,10 @@ class TenantServiceSync(Protocol):
113
179
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
114
180
  def list(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceListRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceListResponse:
115
181
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
182
+ def add_member(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse:
183
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
184
+ def remove_member(self, request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse:
185
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
116
186
 
117
187
 
118
188
  class TenantServiceWSGIApplication(ConnectWSGIApplication):
@@ -139,6 +209,26 @@ class TenantServiceWSGIApplication(ConnectWSGIApplication):
139
209
  ),
140
210
  function=service.list,
141
211
  ),
212
+ "/metalstack.admin.v2.TenantService/AddMember": EndpointSync.unary(
213
+ method=MethodInfo(
214
+ name="AddMember",
215
+ service_name="metalstack.admin.v2.TenantService",
216
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
217
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse,
218
+ idempotency_level=IdempotencyLevel.UNKNOWN,
219
+ ),
220
+ function=service.add_member,
221
+ ),
222
+ "/metalstack.admin.v2.TenantService/RemoveMember": EndpointSync.unary(
223
+ method=MethodInfo(
224
+ name="RemoveMember",
225
+ service_name="metalstack.admin.v2.TenantService",
226
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
227
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse,
228
+ idempotency_level=IdempotencyLevel.UNKNOWN,
229
+ ),
230
+ function=service.remove_member,
231
+ ),
142
232
  },
143
233
  interceptors=interceptors,
144
234
  read_max_bytes=read_max_bytes,
@@ -193,4 +283,44 @@ class TenantServiceClientSync(ConnectClientSync):
193
283
  timeout_ms=timeout_ms,
194
284
  )
195
285
 
286
+ def add_member(
287
+ self,
288
+ request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
289
+ *,
290
+ headers: Headers | Mapping[str, str] | None = None,
291
+ timeout_ms: int | None = None,
292
+ ) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse:
293
+ return self.execute_unary(
294
+ request=request,
295
+ method=MethodInfo(
296
+ name="AddMember",
297
+ service_name="metalstack.admin.v2.TenantService",
298
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberRequest,
299
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceAddMemberResponse,
300
+ idempotency_level=IdempotencyLevel.UNKNOWN,
301
+ ),
302
+ headers=headers,
303
+ timeout_ms=timeout_ms,
304
+ )
305
+
306
+ def remove_member(
307
+ self,
308
+ request: metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
309
+ *,
310
+ headers: Headers | Mapping[str, str] | None = None,
311
+ timeout_ms: int | None = None,
312
+ ) -> metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse:
313
+ return self.execute_unary(
314
+ request=request,
315
+ method=MethodInfo(
316
+ name="RemoveMember",
317
+ service_name="metalstack.admin.v2.TenantService",
318
+ input=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberRequest,
319
+ output=metalstack_dot_admin_dot_v2_dot_tenant__pb2.TenantServiceRemoveMemberResponse,
320
+ idempotency_level=IdempotencyLevel.UNKNOWN,
321
+ ),
322
+ headers=headers,
323
+ timeout_ms=timeout_ms,
324
+ )
325
+
196
326
 
@@ -28,7 +28,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_
28
28
  from metalstack.api.v2 import tenant_pb2 as metalstack_dot_api_dot_v2_dot_tenant__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n metalstack/admin/v2/tenant.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/tenant.proto\"\xa2\x02\n\x1aTenantServiceCreateRequest\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12\x32\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\"\n\x05\x65mail\x18\x03 \x01(\tB\x07\xbaH\x04r\x02`\x01H\x01R\x05\x65mail\x88\x01\x01\x12/\n\navatar_url\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xe0\xb3\xae\xb1\x02\x01H\x02R\tavatarUrl\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labelsB\x0e\n\x0c_descriptionB\x08\n\x06_emailB\r\n\x0b_avatar_url\"P\n\x1bTenantServiceCreateResponse\x12\x31\n\x06tenant\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.TenantR\x06tenant\"P\n\x18TenantServiceListRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.TenantQueryR\x05query\"\x80\x01\n\x19TenantServiceListResponse\x12\x33\n\x07tenants\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.TenantR\x07tenants\x12 \n\tnext_page\x18\x02 \x01(\x04H\x00R\x08nextPage\x88\x01\x01\x42\x0c\n\n_next_page2\xfa\x01\n\rTenantService\x12v\n\x06\x43reate\x12/.metalstack.admin.v2.TenantServiceCreateRequest\x1a\x30.metalstack.admin.v2.TenantServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12q\n\x04List\x12-.metalstack.admin.v2.TenantServiceListRequest\x1a..metalstack.admin.v2.TenantServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xcf\x01\n\x17\x63om.metalstack.admin.v2B\x0bTenantProtoP\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')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n metalstack/admin/v2/tenant.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/tenant.proto\"\xa2\x02\n\x1aTenantServiceCreateRequest\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\x90\xb4\xae\xb1\x02\x01R\x04name\x12\x32\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\"\n\x05\x65mail\x18\x03 \x01(\tB\x07\xbaH\x04r\x02`\x01H\x01R\x05\x65mail\x88\x01\x01\x12/\n\navatar_url\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xe0\xb3\xae\xb1\x02\x01H\x02R\tavatarUrl\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labelsB\x0e\n\x0c_descriptionB\x08\n\x06_emailB\r\n\x0b_avatar_url\"P\n\x1bTenantServiceCreateResponse\x12\x31\n\x06tenant\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.TenantR\x06tenant\"P\n\x18TenantServiceListRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.TenantQueryR\x05query\"\x80\x01\n\x19TenantServiceListResponse\x12\x33\n\x07tenants\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.TenantR\x07tenants\x12 \n\tnext_page\x18\x02 \x01(\x04H\x00R\x08nextPage\x88\x01\x01\x42\x0c\n\n_next_page\"\xa6\x01\n\x1dTenantServiceAddMemberRequest\x12#\n\x06tenant\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\x90\xb4\xae\xb1\x02\x01R\x06tenant\x12#\n\x06member\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n\x04role\x18\x03 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\" \n\x1eTenantServiceAddMemberResponse\"l\n TenantServiceRemoveMemberRequest\x12#\n\x06tenant\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\x90\xb4\xae\xb1\x02\x01R\x06tenant\x12#\n\x06member\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"#\n!TenantServiceRemoveMemberResponse2\x86\x04\n\rTenantService\x12v\n\x06\x43reate\x12/.metalstack.admin.v2.TenantServiceCreateRequest\x1a\x30.metalstack.admin.v2.TenantServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12q\n\x04List\x12-.metalstack.admin.v2.TenantServiceListRequest\x1a..metalstack.admin.v2.TenantServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12\x7f\n\tAddMember\x12\x32.metalstack.admin.v2.TenantServiceAddMemberRequest\x1a\x33.metalstack.admin.v2.TenantServiceAddMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x88\x01\n\x0cRemoveMember\x12\x35.metalstack.admin.v2.TenantServiceRemoveMemberRequest\x1a\x36.metalstack.admin.v2.TenantServiceRemoveMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xcf\x01\n\x17\x63om.metalstack.admin.v2B\x0bTenantProtoP\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)
@@ -37,17 +37,31 @@ if not _descriptor._USE_C_DESCRIPTORS:
37
37
  _globals['DESCRIPTOR']._loaded_options = None
38
38
  _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.admin.v2B\013TenantProtoP\001Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\242\002\003MAX\252\002\023Metalstack.Admin.V2\312\002\023Metalstack\\Admin\\V2\342\002\037Metalstack\\Admin\\V2\\GPBMetadata\352\002\025Metalstack::Admin::V2'
39
39
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['name']._loaded_options = None
40
- _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
40
+ _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\010r\006\220\264\256\261\002\001'
41
41
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['description']._loaded_options = None
42
42
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
43
43
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['email']._loaded_options = None
44
44
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['email']._serialized_options = b'\272H\004r\002`\001'
45
45
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['avatar_url']._loaded_options = None
46
46
  _globals['_TENANTSERVICECREATEREQUEST'].fields_by_name['avatar_url']._serialized_options = b'\272H\010r\006\340\263\256\261\002\001'
47
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['tenant']._loaded_options = None
48
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['tenant']._serialized_options = b'\272H\010r\006\220\264\256\261\002\001'
49
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['member']._loaded_options = None
50
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['member']._serialized_options = b'\272H\010r\006\220\264\256\261\002\001'
51
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['role']._loaded_options = None
52
+ _globals['_TENANTSERVICEADDMEMBERREQUEST'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001'
53
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST'].fields_by_name['tenant']._loaded_options = None
54
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST'].fields_by_name['tenant']._serialized_options = b'\272H\010r\006\220\264\256\261\002\001'
55
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST'].fields_by_name['member']._loaded_options = None
56
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST'].fields_by_name['member']._serialized_options = b'\272H\010r\006\220\264\256\261\002\001'
47
57
  _globals['_TENANTSERVICE'].methods_by_name['Create']._loaded_options = None
48
58
  _globals['_TENANTSERVICE'].methods_by_name['Create']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
49
59
  _globals['_TENANTSERVICE'].methods_by_name['List']._loaded_options = None
50
60
  _globals['_TENANTSERVICE'].methods_by_name['List']._serialized_options = b'\322\363\030\002\001\002\340\363\030\001'
61
+ _globals['_TENANTSERVICE'].methods_by_name['AddMember']._loaded_options = None
62
+ _globals['_TENANTSERVICE'].methods_by_name['AddMember']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
63
+ _globals['_TENANTSERVICE'].methods_by_name['RemoveMember']._loaded_options = None
64
+ _globals['_TENANTSERVICE'].methods_by_name['RemoveMember']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
51
65
  _globals['_TENANTSERVICECREATEREQUEST']._serialized_start=193
52
66
  _globals['_TENANTSERVICECREATEREQUEST']._serialized_end=483
53
67
  _globals['_TENANTSERVICECREATERESPONSE']._serialized_start=485
@@ -56,6 +70,14 @@ if not _descriptor._USE_C_DESCRIPTORS:
56
70
  _globals['_TENANTSERVICELISTREQUEST']._serialized_end=647
57
71
  _globals['_TENANTSERVICELISTRESPONSE']._serialized_start=650
58
72
  _globals['_TENANTSERVICELISTRESPONSE']._serialized_end=778
59
- _globals['_TENANTSERVICE']._serialized_start=781
60
- _globals['_TENANTSERVICE']._serialized_end=1031
73
+ _globals['_TENANTSERVICEADDMEMBERREQUEST']._serialized_start=781
74
+ _globals['_TENANTSERVICEADDMEMBERREQUEST']._serialized_end=947
75
+ _globals['_TENANTSERVICEADDMEMBERRESPONSE']._serialized_start=949
76
+ _globals['_TENANTSERVICEADDMEMBERRESPONSE']._serialized_end=981
77
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST']._serialized_start=983
78
+ _globals['_TENANTSERVICEREMOVEMEMBERREQUEST']._serialized_end=1091
79
+ _globals['_TENANTSERVICEREMOVEMEMBERRESPONSE']._serialized_start=1093
80
+ _globals['_TENANTSERVICEREMOVEMEMBERRESPONSE']._serialized_end=1128
81
+ _globals['_TENANTSERVICE']._serialized_start=1131
82
+ _globals['_TENANTSERVICE']._serialized_end=1649
61
83
  # @@protoc_insertion_point(module_scope)
@@ -43,3 +43,29 @@ class TenantServiceListResponse(_message.Message):
43
43
  tenants: _containers.RepeatedCompositeFieldContainer[_tenant_pb2.Tenant]
44
44
  next_page: int
45
45
  def __init__(self, tenants: _Optional[_Iterable[_Union[_tenant_pb2.Tenant, _Mapping]]] = ..., next_page: _Optional[int] = ...) -> None: ...
46
+
47
+ class TenantServiceAddMemberRequest(_message.Message):
48
+ __slots__ = ("tenant", "member", "role")
49
+ TENANT_FIELD_NUMBER: _ClassVar[int]
50
+ MEMBER_FIELD_NUMBER: _ClassVar[int]
51
+ ROLE_FIELD_NUMBER: _ClassVar[int]
52
+ tenant: str
53
+ member: str
54
+ role: _common_pb2.TenantRole
55
+ def __init__(self, tenant: _Optional[str] = ..., member: _Optional[str] = ..., role: _Optional[_Union[_common_pb2.TenantRole, str]] = ...) -> None: ...
56
+
57
+ class TenantServiceAddMemberResponse(_message.Message):
58
+ __slots__ = ()
59
+ def __init__(self) -> None: ...
60
+
61
+ class TenantServiceRemoveMemberRequest(_message.Message):
62
+ __slots__ = ("tenant", "member")
63
+ TENANT_FIELD_NUMBER: _ClassVar[int]
64
+ MEMBER_FIELD_NUMBER: _ClassVar[int]
65
+ tenant: str
66
+ member: str
67
+ def __init__(self, tenant: _Optional[str] = ..., member: _Optional[str] = ...) -> None: ...
68
+
69
+ class TenantServiceRemoveMemberResponse(_message.Message):
70
+ __slots__ = ()
71
+ def __init__(self) -> None: ...
@@ -0,0 +1,79 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: metalstack/api/v2/common.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'metalstack/api/v2/common.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
+ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
27
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
28
+ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
29
+
30
+
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/common.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(metalstack/api/v2/predefined_rules.proto\"O\n\x06Paging\x12\x17\n\x04page\x18\x01 \x01(\x04H\x00R\x04page\x88\x01\x01\x12\x19\n\x05\x63ount\x18\x02 \x01(\x04H\x01R\x05\x63ount\x88\x01\x01\x42\x07\n\x05_pageB\x08\n\x06_count\"\xa2\x01\n\x06Labels\x12]\n\x06labels\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.Labels.LabelsEntryB\x1e\xbaH\x1b\x9a\x01\x18\"\x07r\x05\x10\x01\x18\x80\x02*\x07r\x05\x10\x00\x18\x80\x02\xb8\x95\xb8\xb1\x02\x01R\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa3\x02\n\x04Meta\x12\x36\n\x06labels\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x06labels\x88\x01\x01\x12\x39\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1e\n\ngeneration\x18\x04 \x01(\x04R\ngeneration\x12-\n\x10\x64\x65letion_task_id\x18\x05 \x01(\tH\x01R\x0e\x64\x65letionTaskId\x88\x01\x01\x42\t\n\x07_labelsB\x13\n\x11_deletion_task_id\"\xa5\x01\n\x0cUpdateLabels\x12\x35\n\x07replace\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x07replace\x12K\n\tinidivual\x18\x02 \x01(\x0b\x32+.metalstack.api.v2.UpdateLabelsIndividuallyH\x00R\tinidivualB\x11\n\x08strategy\x12\x05\xbaH\x02\x08\x01\"s\n\x18UpdateLabelsIndividually\x12\x31\n\x06update\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06update\x12$\n\x06remove\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xd0\xa4\xb3\xb1\x02\x01R\x06remove\"\xaa\x01\n\nUpdateMeta\x12\x39\n\nupdated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x61\n\x10locking_strategy\x18\x02 \x01(\x0e\x32,.metalstack.api.v2.OptimisticLockingStrategyB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0flockingStrategy*\x87\x01\n\nTenantRole\x12\x1b\n\x17TENANT_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11TENANT_ROLE_OWNER\x10\x01\x12\x16\n\x12TENANT_ROLE_EDITOR\x10\x02\x12\x16\n\x12TENANT_ROLE_VIEWER\x10\x03\x12\x15\n\x11TENANT_ROLE_GUEST\x10\x04*u\n\x0bProjectRole\x12\x1c\n\x18PROJECT_ROLE_UNSPECIFIED\x10\x00\x12\x16\n\x12PROJECT_ROLE_OWNER\x10\x01\x12\x17\n\x13PROJECT_ROLE_EDITOR\x10\x02\x12\x17\n\x13PROJECT_ROLE_VIEWER\x10\x03*U\n\tAdminRole\x12\x1a\n\x16\x41\x44MIN_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41\x44MIN_ROLE_EDITOR\x10\x01\x12\x15\n\x11\x41\x44MIN_ROLE_VIEWER\x10\x02*U\n\tInfraRole\x12\x1a\n\x16INFRA_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11INFRA_ROLE_EDITOR\x10\x01\x12\x15\n\x11INFRA_ROLE_VIEWER\x10\x02*]\n\x0bMachineRole\x12\x1c\n\x18MACHINE_ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x13MACHINE_ROLE_EDITOR\x10\x01\x12\x17\n\x13MACHINE_ROLE_VIEWER\x10\x02*T\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x01\x12\x13\n\x0fVISIBILITY_SELF\x10\x02*R\n\x08\x41uditing\x12\x18\n\x14\x41UDITING_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41UDITING_INCLUDED\x10\x01\x12\x15\n\x11\x41UDITING_EXCLUDED\x10\x02*\x98\x01\n\x19OptimisticLockingStrategy\x12+\n\'OPTIMISTIC_LOCKING_STRATEGY_UNSPECIFIED\x10\x00\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_CLIENT\x10\x01\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_SERVER\x10\x02:b\n\x0ctenant_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb8\x8e\x03 \x03(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x0btenantRoles:e\n\rproject_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb9\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x0cprojectRoles:_\n\x0b\x61\x64min_roles\x12\x1e.google.protobuf.MethodOptions\x18\xba\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.AdminRoleR\nadminRoles:_\n\nvisibility\x12\x1e.google.protobuf.MethodOptions\x18\xbb\x8e\x03 \x01(\x0e\x32\x1d.metalstack.api.v2.VisibilityR\nvisibility:Y\n\x08\x61uditing\x12\x1e.google.protobuf.MethodOptions\x18\xbc\x8e\x03 \x01(\x0e\x32\x1b.metalstack.api.v2.AuditingR\x08\x61uditing:_\n\x0binfra_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbd\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.InfraRoleR\ninfraRoles:e\n\rmachine_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbe\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x0cmachineRoles:O\n\x11\x65num_string_value\x12!.google.protobuf.EnumValueOptions\x18\xa0\x96\x03 \x01(\tR\x0f\x65numStringValueB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0b\x43ommonProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3')
32
+
33
+ _globals = globals()
34
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
35
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.api.v2.common_pb2', _globals)
36
+ if not _descriptor._USE_C_DESCRIPTORS:
37
+ _globals['DESCRIPTOR']._loaded_options = None
38
+ _globals['DESCRIPTOR']._serialized_options = b'\n\025com.metalstack.api.v2B\013CommonProtoP\001Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\242\002\003MAX\252\002\021Metalstack.Api.V2\312\002\021Metalstack\\Api\\V2\342\002\035Metalstack\\Api\\V2\\GPBMetadata\352\002\023Metalstack::Api::V2'
39
+ _globals['_LABELS_LABELSENTRY']._loaded_options = None
40
+ _globals['_LABELS_LABELSENTRY']._serialized_options = b'8\001'
41
+ _globals['_LABELS'].fields_by_name['labels']._loaded_options = None
42
+ _globals['_LABELS'].fields_by_name['labels']._serialized_options = b'\272H\033\232\001\030\"\007r\005\020\001\030\200\002*\007r\005\020\000\030\200\002\270\225\270\261\002\001'
43
+ _globals['_UPDATELABELS'].oneofs_by_name['strategy']._loaded_options = None
44
+ _globals['_UPDATELABELS'].oneofs_by_name['strategy']._serialized_options = b'\272H\002\010\001'
45
+ _globals['_UPDATELABELSINDIVIDUALLY'].fields_by_name['remove']._loaded_options = None
46
+ _globals['_UPDATELABELSINDIVIDUALLY'].fields_by_name['remove']._serialized_options = b'\272H\t\222\001\006\320\244\263\261\002\001'
47
+ _globals['_UPDATEMETA'].fields_by_name['locking_strategy']._loaded_options = None
48
+ _globals['_UPDATEMETA'].fields_by_name['locking_strategy']._serialized_options = b'\272H\005\202\001\002\020\001'
49
+ _globals['_TENANTROLE']._serialized_start=1190
50
+ _globals['_TENANTROLE']._serialized_end=1325
51
+ _globals['_PROJECTROLE']._serialized_start=1327
52
+ _globals['_PROJECTROLE']._serialized_end=1444
53
+ _globals['_ADMINROLE']._serialized_start=1446
54
+ _globals['_ADMINROLE']._serialized_end=1531
55
+ _globals['_INFRAROLE']._serialized_start=1533
56
+ _globals['_INFRAROLE']._serialized_end=1618
57
+ _globals['_MACHINEROLE']._serialized_start=1620
58
+ _globals['_MACHINEROLE']._serialized_end=1713
59
+ _globals['_VISIBILITY']._serialized_start=1715
60
+ _globals['_VISIBILITY']._serialized_end=1799
61
+ _globals['_AUDITING']._serialized_start=1801
62
+ _globals['_AUDITING']._serialized_end=1883
63
+ _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_start=1886
64
+ _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_end=2038
65
+ _globals['_PAGING']._serialized_start=191
66
+ _globals['_PAGING']._serialized_end=270
67
+ _globals['_LABELS']._serialized_start=273
68
+ _globals['_LABELS']._serialized_end=435
69
+ _globals['_LABELS_LABELSENTRY']._serialized_start=378
70
+ _globals['_LABELS_LABELSENTRY']._serialized_end=435
71
+ _globals['_META']._serialized_start=438
72
+ _globals['_META']._serialized_end=729
73
+ _globals['_UPDATELABELS']._serialized_start=732
74
+ _globals['_UPDATELABELS']._serialized_end=897
75
+ _globals['_UPDATELABELSINDIVIDUALLY']._serialized_start=899
76
+ _globals['_UPDATELABELSINDIVIDUALLY']._serialized_end=1014
77
+ _globals['_UPDATEMETA']._serialized_start=1017
78
+ _globals['_UPDATEMETA']._serialized_end=1187
79
+ # @@protoc_insertion_point(module_scope)
@@ -143,6 +143,14 @@ class Meta(_message.Message):
143
143
  def __init__(self, labels: _Optional[_Union[Labels, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., generation: _Optional[int] = ..., deletion_task_id: _Optional[str] = ...) -> None: ...
144
144
 
145
145
  class UpdateLabels(_message.Message):
146
+ __slots__ = ("replace", "inidivual")
147
+ REPLACE_FIELD_NUMBER: _ClassVar[int]
148
+ INIDIVUAL_FIELD_NUMBER: _ClassVar[int]
149
+ replace: Labels
150
+ inidivual: UpdateLabelsIndividually
151
+ def __init__(self, replace: _Optional[_Union[Labels, _Mapping]] = ..., inidivual: _Optional[_Union[UpdateLabelsIndividually, _Mapping]] = ...) -> None: ...
152
+
153
+ class UpdateLabelsIndividually(_message.Message):
146
154
  __slots__ = ("update", "remove")
147
155
  UPDATE_FIELD_NUMBER: _ClassVar[int]
148
156
  REMOVE_FIELD_NUMBER: _ClassVar[int]