metal-stack-api 0.0.22__py3-none-any.whl → 0.0.23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. {metal_stack_api-0.0.22.dist-info → metal_stack_api-0.0.23.dist-info}/METADATA +3 -2
  2. metal_stack_api-0.0.23.dist-info/RECORD +97 -0
  3. {metal_stack_api-0.0.22.dist-info → metal_stack_api-0.0.23.dist-info}/top_level.txt +0 -1
  4. metalstack/admin/v2/{filesystem_connecpy.py → filesystem_connect.py} +22 -22
  5. metalstack/admin/v2/filesystem_pb2.py +20 -19
  6. metalstack/admin/v2/filesystem_pb2.pyi +1 -0
  7. metalstack/admin/v2/{image_connecpy.py → image_connect.py} +24 -24
  8. metalstack/admin/v2/image_pb2.py +24 -23
  9. metalstack/admin/v2/image_pb2.pyi +1 -0
  10. metalstack/admin/v2/{ip_connecpy.py → ip_connect.py} +20 -20
  11. metalstack/admin/v2/ip_pb2.py +2 -2
  12. metalstack/admin/v2/{machine_connecpy.py → machine_connect.py} +20 -20
  13. metalstack/admin/v2/machine_pb2.py +15 -14
  14. metalstack/admin/v2/machine_pb2.pyi +1 -0
  15. metalstack/admin/v2/{network_connecpy.py → network_connect.py} +26 -26
  16. metalstack/admin/v2/network_pb2.py +45 -36
  17. metalstack/admin/v2/network_pb2.pyi +1 -0
  18. metalstack/admin/v2/{partition_connecpy.py → partition_connect.py} +24 -24
  19. metalstack/admin/v2/partition_pb2.py +23 -22
  20. metalstack/admin/v2/partition_pb2.pyi +1 -0
  21. metalstack/admin/v2/{size_connecpy.py → size_connect.py} +22 -22
  22. metalstack/admin/v2/size_pb2.py +20 -19
  23. metalstack/admin/v2/size_pb2.pyi +1 -0
  24. metalstack/admin/v2/switch_connect.py +444 -0
  25. metalstack/admin/v2/switch_pb2.py +108 -0
  26. metalstack/admin/v2/switch_pb2.pyi +114 -0
  27. metalstack/admin/v2/{tenant_connecpy.py → tenant_connect.py} +20 -20
  28. metalstack/admin/v2/tenant_pb2.py +18 -15
  29. metalstack/admin/v2/tenant_pb2.pyi +1 -0
  30. metalstack/admin/v2/{token_connecpy.py → token_connect.py} +20 -20
  31. metalstack/admin/v2/token_pb2.py +2 -2
  32. metalstack/api/v2/common_pb2.py +2 -2
  33. metalstack/api/v2/{filesystem_connecpy.py → filesystem_connect.py} +22 -22
  34. metalstack/api/v2/filesystem_pb2.py +54 -53
  35. metalstack/api/v2/filesystem_pb2.pyi +1 -0
  36. metalstack/api/v2/{health_connecpy.py → health_connect.py} +18 -18
  37. metalstack/api/v2/health_pb2.py +2 -2
  38. metalstack/api/v2/{image_connecpy.py → image_connect.py} +22 -22
  39. metalstack/api/v2/image_pb2.py +32 -31
  40. metalstack/api/v2/image_pb2.pyi +1 -0
  41. metalstack/api/v2/{ip_connecpy.py → ip_connect.py} +26 -26
  42. metalstack/api/v2/ip_pb2.py +41 -40
  43. metalstack/api/v2/ip_pb2.pyi +1 -0
  44. metalstack/api/v2/{machine_connecpy.py → machine_connect.py} +26 -26
  45. metalstack/api/v2/machine_pb2.py +122 -121
  46. metalstack/api/v2/machine_pb2.pyi +1 -0
  47. metalstack/api/v2/{method_connecpy.py → method_connect.py} +20 -20
  48. metalstack/api/v2/method_pb2.py +2 -2
  49. metalstack/api/v2/{network_connecpy.py → network_connect.py} +28 -28
  50. metalstack/api/v2/network_pb2.py +73 -66
  51. metalstack/api/v2/network_pb2.pyi +1 -0
  52. metalstack/api/v2/{partition_connecpy.py → partition_connect.py} +20 -20
  53. metalstack/api/v2/partition_pb2.py +25 -24
  54. metalstack/api/v2/partition_pb2.pyi +1 -0
  55. metalstack/api/v2/predefined_rules_pb2.py +50 -0
  56. metalstack/api/v2/predefined_rules_pb2.pyi +19 -0
  57. metalstack/api/v2/{project_connecpy.py → project_connect.py} +40 -40
  58. metalstack/api/v2/project_pb2.py +69 -64
  59. metalstack/api/v2/project_pb2.pyi +1 -0
  60. metalstack/api/v2/{size_connecpy.py → size_connect.py} +20 -20
  61. metalstack/api/v2/size_pb2.py +26 -25
  62. metalstack/api/v2/size_pb2.pyi +1 -0
  63. metalstack/api/v2/switch_pb2.py +62 -41
  64. metalstack/api/v2/switch_pb2.pyi +54 -11
  65. metalstack/api/v2/{tenant_connecpy.py → tenant_connect.py} +40 -40
  66. metalstack/api/v2/tenant_pb2.py +69 -64
  67. metalstack/api/v2/tenant_pb2.pyi +1 -0
  68. metalstack/api/v2/{token_connecpy.py → token_connect.py} +28 -28
  69. metalstack/api/v2/token_pb2.py +51 -50
  70. metalstack/api/v2/token_pb2.pyi +1 -0
  71. metalstack/api/v2/{user_connecpy.py → user_connect.py} +18 -18
  72. metalstack/api/v2/user_pb2.py +15 -11
  73. metalstack/api/v2/user_pb2.pyi +2 -0
  74. metalstack/api/v2/{version_connecpy.py → version_connect.py} +18 -18
  75. metalstack/api/v2/version_pb2.py +2 -2
  76. metalstack/client/client.py +56 -52
  77. metalstack/infra/v2/{bmc_connecpy.py → bmc_connect.py} +18 -18
  78. metalstack/infra/v2/bmc_pb2.py +2 -2
  79. metalstack/infra/v2/{switch_connecpy.py → switch_connect.py} +83 -18
  80. metalstack/infra/v2/switch_pb2.py +28 -10
  81. metalstack/infra/v2/switch_pb2.pyi +51 -0
  82. buf/__init__.py +0 -0
  83. buf/validate/__init__.py +0 -0
  84. buf/validate/validate_pb2.py +0 -450
  85. buf/validate/validate_pb2.pyi +0 -627
  86. buf/validate/validate_pb2_grpc.py +0 -4
  87. metal_stack_api-0.0.22.dist-info/RECORD +0 -124
  88. metalstack/admin/v2/filesystem_pb2_grpc.py +0 -169
  89. metalstack/admin/v2/image_pb2_grpc.py +0 -213
  90. metalstack/admin/v2/ip_pb2_grpc.py +0 -125
  91. metalstack/admin/v2/machine_pb2_grpc.py +0 -125
  92. metalstack/admin/v2/network_pb2_grpc.py +0 -257
  93. metalstack/admin/v2/partition_pb2_grpc.py +0 -213
  94. metalstack/admin/v2/size_pb2_grpc.py +0 -169
  95. metalstack/admin/v2/tenant_pb2_grpc.py +0 -125
  96. metalstack/admin/v2/token_pb2_grpc.py +0 -125
  97. metalstack/api/v2/common_pb2_grpc.py +0 -4
  98. metalstack/api/v2/filesystem_pb2_grpc.py +0 -169
  99. metalstack/api/v2/health_pb2_grpc.py +0 -81
  100. metalstack/api/v2/image_pb2_grpc.py +0 -169
  101. metalstack/api/v2/ip_pb2_grpc.py +0 -257
  102. metalstack/api/v2/machine_pb2_grpc.py +0 -257
  103. metalstack/api/v2/method_pb2_grpc.py +0 -128
  104. metalstack/api/v2/network_pb2_grpc.py +0 -301
  105. metalstack/api/v2/partition_pb2_grpc.py +0 -125
  106. metalstack/api/v2/project_pb2_grpc.py +0 -565
  107. metalstack/api/v2/size_pb2_grpc.py +0 -125
  108. metalstack/api/v2/switch_pb2_grpc.py +0 -4
  109. metalstack/api/v2/tenant_pb2_grpc.py +0 -565
  110. metalstack/api/v2/token_pb2_grpc.py +0 -301
  111. metalstack/api/v2/user_pb2_grpc.py +0 -81
  112. metalstack/api/v2/version_pb2_grpc.py +0 -81
  113. metalstack/infra/v2/bmc_pb2_grpc.py +0 -81
  114. metalstack/infra/v2/switch_pb2_grpc.py +0 -81
  115. {metal_stack_api-0.0.22.dist-info → metal_stack_api-0.0.23.dist-info}/WHEEL +0 -0
@@ -1,5 +1,6 @@
1
1
  from buf.validate import validate_pb2 as _validate_pb2
2
2
  from metalstack.api.v2 import common_pb2 as _common_pb2
3
+ from metalstack.api.v2 import predefined_rules_pb2 as _predefined_rules_pb2
3
4
  from google.protobuf.internal import containers as _containers
4
5
  from google.protobuf import descriptor as _descriptor
5
6
  from google.protobuf import message as _message
@@ -0,0 +1,50 @@
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/predefined_rules.proto
5
+ # Protobuf Python Version: 6.32.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
+ 6,
15
+ 32,
16
+ 1,
17
+ '',
18
+ 'metalstack/api/v2/predefined_rules.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
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(metalstack/api/v2/predefined_rules.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto:\xb8\x01\n\nmacaddress\x12\x19.buf.validate.StringRules\x18\xb7\xe6\x95& \x01(\x08\x42z\xc2Hw\nu\n\x11string.macaddress\x12&this string must be a valid macaddress\x1a\x38this.matches(\'^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$\')R\nmacaddress:\x99\x01\n\x07is_name\x12\x19.buf.validate.StringRules\x18\xb8\xe6\x95& \x01(\x08\x42\x62\xc2H_\n]\n\x0estring.is_name\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x06isName:\x9a\x01\n\x0eis_description\x12\x19.buf.validate.StringRules\x18\xb9\xe6\x95& \x01(\x08\x42U\xc2HR\nP\n\x15string.is_description\x12#must be shorter than 256 characters\x1a\x12this.size() <= 256R\risDescription:\xa8\x01\n\x0cis_partition\x12\x19.buf.validate.StringRules\x18\xba\xe6\x95& \x01(\x08\x42g\xc2Hd\nb\n\x13string.is_partition\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x0bisPartition:\x82\x01\n\tis_prefix\x12\x19.buf.validate.StringRules\x18\xbb\xe6\x95& \x01(\x08\x42G\xc2HD\nB\n\x0fstring.prefixes\x12\x1cgiven prefixes must be valid\x1a\x11this.isIpPrefix()R\x08isPrefix:\x8f\x01\n\x08prefixes\x12\x1b.buf.validate.RepeatedRules\x18\xbc\xe6\x95& \x01(\x08\x42S\xc2HP\nN\n\x11repeated.prefixes\x12\x1cgiven prefixes must be valid\x1a\x1bthis.all(m, m.isIpPrefix())R\x08prefixes:u\n\x03ips\x12\x1b.buf.validate.RepeatedRules\x18\xbd\xe6\x95& \x01(\x08\x42\x43\xc2H@\n>\n\x0crepeated.ips\x12\x17given ips must be valid\x1a\x15this.all(m, m.isIp())R\x03ipsB\xca\x01\n\x15\x63om.metalstack.api.v2B\x14PredefinedRulesProtoP\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::V2')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.api.v2.predefined_rules_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ _globals['DESCRIPTOR']._loaded_options = None
35
+ _globals['DESCRIPTOR']._serialized_options = b'\n\025com.metalstack.api.v2B\024PredefinedRulesProtoP\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'
36
+ _globals['macaddress']._loaded_options = None
37
+ _globals['macaddress']._serialized_options = b'\302Hw\nu\n\021string.macaddress\022&this string must be a valid macaddress\0328this.matches(\'^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$\')'
38
+ _globals['is_name']._loaded_options = None
39
+ _globals['is_name']._serialized_options = b'\302H_\n]\n\016string.is_name\022#must be within 2 and 128 characters\032&this.size() >= 2 && this.size() <= 128'
40
+ _globals['is_description']._loaded_options = None
41
+ _globals['is_description']._serialized_options = b'\302HR\nP\n\025string.is_description\022#must be shorter than 256 characters\032\022this.size() <= 256'
42
+ _globals['is_partition']._loaded_options = None
43
+ _globals['is_partition']._serialized_options = b'\302Hd\nb\n\023string.is_partition\022#must be within 2 and 128 characters\032&this.size() >= 2 && this.size() <= 128'
44
+ _globals['is_prefix']._loaded_options = None
45
+ _globals['is_prefix']._serialized_options = b'\302HD\nB\n\017string.prefixes\022\034given prefixes must be valid\032\021this.isIpPrefix()'
46
+ _globals['prefixes']._loaded_options = None
47
+ _globals['prefixes']._serialized_options = b'\302HP\nN\n\021repeated.prefixes\022\034given prefixes must be valid\032\033this.all(m, m.isIpPrefix())'
48
+ _globals['ips']._loaded_options = None
49
+ _globals['ips']._serialized_options = b'\302H@\n>\n\014repeated.ips\022\027given ips must be valid\032\025this.all(m, m.isIp())'
50
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,19 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
2
+ from google.protobuf import descriptor as _descriptor
3
+ from typing import ClassVar as _ClassVar
4
+
5
+ DESCRIPTOR: _descriptor.FileDescriptor
6
+ MACADDRESS_FIELD_NUMBER: _ClassVar[int]
7
+ macaddress: _descriptor.FieldDescriptor
8
+ IS_NAME_FIELD_NUMBER: _ClassVar[int]
9
+ is_name: _descriptor.FieldDescriptor
10
+ IS_DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
11
+ is_description: _descriptor.FieldDescriptor
12
+ IS_PARTITION_FIELD_NUMBER: _ClassVar[int]
13
+ is_partition: _descriptor.FieldDescriptor
14
+ IS_PREFIX_FIELD_NUMBER: _ClassVar[int]
15
+ is_prefix: _descriptor.FieldDescriptor
16
+ PREFIXES_FIELD_NUMBER: _ClassVar[int]
17
+ prefixes: _descriptor.FieldDescriptor
18
+ IPS_FIELD_NUMBER: _ClassVar[int]
19
+ ips: _descriptor.FieldDescriptor
@@ -1,60 +1,60 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Generated by https://github.com/i2y/connecpy/v2/protoc-gen-connecpy. DO NOT EDIT!
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/api/v2/project.proto
4
4
 
5
5
  from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
- from connecpy.client import ConnecpyClient, ConnecpyClientSync
9
- from connecpy.code import Code
10
- from connecpy.exceptions import ConnecpyException
11
- from connecpy.interceptor import Interceptor, InterceptorSync
12
- from connecpy.method import IdempotencyLevel, MethodInfo
13
- from connecpy.request import Headers, RequestContext
14
- from connecpy.server import ConnecpyASGIApplication, ConnecpyWSGIApplication, Endpoint, EndpointSync
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
15
  import metalstack.api.v2.project_pb2 as metalstack_dot_api_dot_v2_dot_project__pb2
16
16
 
17
17
 
18
18
  class ProjectService(Protocol):
19
19
  async def list(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListResponse:
20
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
21
 
22
22
  async def get(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceGetResponse:
23
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
23
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
24
 
25
25
  async def create(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceCreateRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceCreateResponse:
26
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
26
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
27
27
 
28
28
  async def delete(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceDeleteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceDeleteResponse:
29
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
29
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
30
30
 
31
31
  async def update(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateResponse:
32
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
32
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
33
33
 
34
34
  async def remove_member(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceRemoveMemberRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceRemoveMemberResponse:
35
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
35
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
36
36
 
37
37
  async def update_member(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateMemberRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateMemberResponse:
38
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
38
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
39
39
 
40
40
  async def invite(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteResponse:
41
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
41
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
42
42
 
43
43
  async def invite_accept(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteAcceptRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteAcceptResponse:
44
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
44
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
45
45
 
46
46
  async def invite_delete(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteDeleteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteDeleteResponse:
47
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
47
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
48
48
 
49
49
  async def invites_list(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInvitesListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInvitesListResponse:
50
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
50
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
51
51
 
52
52
  async def invite_get(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteGetResponse:
53
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
53
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
54
54
 
55
55
 
56
- class ProjectServiceASGIApplication(ConnecpyASGIApplication):
57
- def __init__(self, service: ProjectService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None):
56
+ class ProjectServiceASGIApplication(ConnectASGIApplication):
57
+ def __init__(self, service: ProjectService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
58
58
  super().__init__(
59
59
  endpoints={
60
60
  "/metalstack.api.v2.ProjectService/List": Endpoint.unary(
@@ -183,12 +183,12 @@ class ProjectServiceASGIApplication(ConnecpyASGIApplication):
183
183
  )
184
184
 
185
185
  @property
186
- def path(self):
186
+ def path(self) -> str:
187
187
  """Returns the URL path to mount the application to when serving multiple applications."""
188
188
  return "/metalstack.api.v2.ProjectService"
189
189
 
190
190
 
191
- class ProjectServiceClient(ConnecpyClient):
191
+ class ProjectServiceClient(ConnectClient):
192
192
  async def list(
193
193
  self,
194
194
  request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListRequest,
@@ -432,33 +432,33 @@ class ProjectServiceClient(ConnecpyClient):
432
432
 
433
433
  class ProjectServiceSync(Protocol):
434
434
  def list(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListResponse:
435
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
435
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
436
436
  def get(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceGetResponse:
437
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
437
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
438
438
  def create(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceCreateRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceCreateResponse:
439
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
439
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
440
440
  def delete(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceDeleteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceDeleteResponse:
441
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
441
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
442
442
  def update(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateResponse:
443
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
443
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
444
444
  def remove_member(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceRemoveMemberRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceRemoveMemberResponse:
445
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
445
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
446
446
  def update_member(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateMemberRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceUpdateMemberResponse:
447
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
447
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
448
448
  def invite(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteResponse:
449
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
449
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
450
450
  def invite_accept(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteAcceptRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteAcceptResponse:
451
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
451
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
452
452
  def invite_delete(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteDeleteRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteDeleteResponse:
453
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
453
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
454
454
  def invites_list(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInvitesListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInvitesListResponse:
455
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
455
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
456
456
  def invite_get(self, request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceInviteGetResponse:
457
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
457
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
458
458
 
459
459
 
460
- class ProjectServiceWSGIApplication(ConnecpyWSGIApplication):
461
- def __init__(self, service: ProjectServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None):
460
+ class ProjectServiceWSGIApplication(ConnectWSGIApplication):
461
+ def __init__(self, service: ProjectServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
462
462
  super().__init__(
463
463
  endpoints={
464
464
  "/metalstack.api.v2.ProjectService/List": EndpointSync.unary(
@@ -587,12 +587,12 @@ class ProjectServiceWSGIApplication(ConnecpyWSGIApplication):
587
587
  )
588
588
 
589
589
  @property
590
- def path(self):
590
+ def path(self) -> str:
591
591
  """Returns the URL path to mount the application to when serving multiple applications."""
592
592
  return "/metalstack.api.v2.ProjectService"
593
593
 
594
594
 
595
- class ProjectServiceClientSync(ConnecpyClientSync):
595
+ class ProjectServiceClientSync(ConnectClientSync):
596
596
  def list(
597
597
  self,
598
598
  request: metalstack_dot_api_dot_v2_dot_project__pb2.ProjectServiceListRequest,
@@ -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/api/v2/project.proto
5
- # Protobuf Python Version: 6.32.0
5
+ # Protobuf Python Version: 6.32.1
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
@@ -13,7 +13,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
14
  6,
15
15
  32,
16
- 0,
16
+ 1,
17
17
  '',
18
18
  'metalstack/api/v2/project.proto'
19
19
  )
@@ -25,9 +25,10 @@ _sym_db = _symbol_database.Default()
25
25
  from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
26
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
27
  from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2
28
+ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
28
29
 
29
30
 
30
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/project.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\"\xcb\x01\n\x07Project\x12\x12\n\x04uuid\x18\x01 \x01(\tR\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06tenant\x18\x05 \x01(\tR\x06tenant\x12\"\n\navatar_url\x18\x06 \x01(\tH\x00R\tavatarUrl\x88\x01\x01\x42\r\n\x0b_avatar_url\"\xcb\x01\n\rProjectMember\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12<\n\x04role\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x31\n\x14inherited_membership\x18\x03 \x01(\x08R\x13inheritedMembership\x12\x39\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"\xe7\x02\n\rProjectInvite\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x16\n\x06joined\x18\x04 \x01(\x08R\x06joined\x12!\n\x0cproject_name\x18\x05 \x01(\tR\x0bprojectName\x12\x16\n\x06tenant\x18\x06 \x01(\tR\x06tenant\x12\x1f\n\x0btenant_name\x18\x07 \x01(\tR\ntenantName\x12\x39\n\nexpires_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x37\n\tjoined_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x08joinedAt\"\xdc\x01\n\x19ProjectServiceListRequest\x12\x13\n\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12#\n\x04name\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x06tenant\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x06tenant\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x03R\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\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\x08projects\">\n\x18ProjectServiceGetRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"\x9c\x01\n\x19ProjectServiceGetResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\x12I\n\x0fproject_members\x18\x02 \x03(\x0b\x32 .metalstack.api.v2.ProjectMemberR\x0eprojectMembers\"\xf2\x01\n\x1bProjectServiceCreateRequest\x12 \n\x05login\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01R\x05login\x12\x1d\n\x04name\x18\x02 \x01(\tB\t\xbaH\x06r\x04\x10\x02\x18@R\x04name\x12,\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x04R\x0b\x64\x65scription\x12\"\n\navatar_url\x18\x04 \x01(\tH\x00R\tavatarUrl\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labelsB\r\n\x0b_avatar_url\"T\n\x1cProjectServiceCreateResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"A\n\x1bProjectServiceDeleteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cProjectServiceDeleteResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"\xf5\x02\n\x1bProjectServiceUpdateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12\"\n\x04name\x18\x03 \x01(\tB\t\xbaH\x06r\x04\x10\x02\x18@H\x00R\x04name\x88\x01\x01\x12\x31\n\x0b\x64\x65scription\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x04H\x01R\x0b\x64\x65scription\x88\x01\x01\x12\"\n\navatar_url\x18\x05 \x01(\tH\x02R\tavatarUrl\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x03R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\r\n\x0b_avatar_urlB\t\n\x07_labels\"T\n\x1cProjectServiceUpdateResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"\x7f\n\x1bProjectServiceInviteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"X\n\x1cProjectServiceInviteResponse\x12\x38\n\x06invite\x18\x01 \x01(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x06invite\"F\n ProjectServiceInvitesListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"_\n!ProjectServiceInvitesListResponse\x12:\n\x07invites\x18\x01 \x03(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x07invites\"8\n\x1eProjectServiceInviteGetRequest\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\"[\n\x1fProjectServiceInviteGetResponse\x12\x38\n\x06invite\x18\x01 \x01(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x06invite\"_\n!ProjectServiceRemoveMemberRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06member\x18\x02 \x01(\tR\x06member\"$\n\"ProjectServiceRemoveMemberResponse\"\x9d\x01\n!ProjectServiceUpdateMemberRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06member\x18\x02 \x01(\tR\x06member\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"m\n\"ProjectServiceUpdateMemberResponse\x12G\n\x0eproject_member\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.ProjectMemberR\rprojectMember\";\n!ProjectServiceInviteAcceptRequest\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\"a\n\"ProjectServiceInviteAcceptResponse\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12!\n\x0cproject_name\x18\x02 \x01(\tR\x0bprojectName\"_\n!ProjectServiceInviteDeleteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"$\n\"ProjectServiceInviteDeleteResponse2\xef\x0b\n\x0eProjectService\x12m\n\x04List\x12,.metalstack.api.v2.ProjectServiceListRequest\x1a-.metalstack.api.v2.ProjectServiceListResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x02\x12m\n\x03Get\x12+.metalstack.api.v2.ProjectServiceGetRequest\x1a,.metalstack.api.v2.ProjectServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.ProjectServiceCreateRequest\x1a/.metalstack.api.v2.ProjectServiceCreateResponse\"\n\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12t\n\x06\x44\x65lete\x12..metalstack.api.v2.ProjectServiceDeleteRequest\x1a/.metalstack.api.v2.ProjectServiceDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.ProjectServiceUpdateRequest\x1a/.metalstack.api.v2.ProjectServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12\x86\x01\n\x0cRemoveMember\x12\x34.metalstack.api.v2.ProjectServiceRemoveMemberRequest\x1a\x35.metalstack.api.v2.ProjectServiceRemoveMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x86\x01\n\x0cUpdateMember\x12\x34.metalstack.api.v2.ProjectServiceUpdateMemberRequest\x1a\x35.metalstack.api.v2.ProjectServiceUpdateMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12t\n\x06Invite\x12..metalstack.api.v2.ProjectServiceInviteRequest\x1a/.metalstack.api.v2.ProjectServiceInviteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x85\x01\n\x0cInviteAccept\x12\x34.metalstack.api.v2.ProjectServiceInviteAcceptRequest\x1a\x35.metalstack.api.v2.ProjectServiceInviteAcceptResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x01\x12\x86\x01\n\x0cInviteDelete\x12\x34.metalstack.api.v2.ProjectServiceInviteDeleteRequest\x1a\x35.metalstack.api.v2.ProjectServiceInviteDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n\x0bInvitesList\x12\x33.metalstack.api.v2.ProjectServiceInvitesListRequest\x1a\x34.metalstack.api.v2.ProjectServiceInvitesListResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x02\x12|\n\tInviteGet\x12\x31.metalstack.api.v2.ProjectServiceInviteGetRequest\x1a\x32.metalstack.api.v2.ProjectServiceInviteGetResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cProjectProtoP\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')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/project.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe5\x01\n\x07Project\x12\x12\n\x04uuid\x18\x01 \x01(\tR\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x1f\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12\x16\n\x06tenant\x18\x05 \x01(\tR\x06tenant\x12\"\n\navatar_url\x18\x06 \x01(\tH\x00R\tavatarUrl\x88\x01\x01\x42\r\n\x0b_avatar_url\"\xcb\x01\n\rProjectMember\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12<\n\x04role\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x31\n\x14inherited_membership\x18\x03 \x01(\x08R\x13inheritedMembership\x12\x39\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"\xe7\x02\n\rProjectInvite\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x16\n\x06joined\x18\x04 \x01(\x08R\x06joined\x12!\n\x0cproject_name\x18\x05 \x01(\tR\x0bprojectName\x12\x16\n\x06tenant\x18\x06 \x01(\tR\x06tenant\x12\x1f\n\x0btenant_name\x18\x07 \x01(\tR\ntenantName\x12\x39\n\nexpires_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x37\n\tjoined_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x08joinedAt\"\xdd\x01\n\x19ProjectServiceListRequest\x12\x13\n\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x06tenant\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x06tenant\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x03R\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\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\x08projects\">\n\x18ProjectServiceGetRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"\x9c\x01\n\x19ProjectServiceGetResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\x12I\n\x0fproject_members\x18\x02 \x03(\x0b\x32 .metalstack.api.v2.ProjectMemberR\x0eprojectMembers\"\xf5\x01\n\x1bProjectServiceCreateRequest\x12 \n\x05login\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01R\x05login\x12\x1f\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12\"\n\navatar_url\x18\x04 \x01(\tH\x00R\tavatarUrl\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labelsB\r\n\x0b_avatar_url\"T\n\x1cProjectServiceCreateResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"A\n\x1bProjectServiceDeleteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cProjectServiceDeleteResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"\xf8\x02\n\x1bProjectServiceUpdateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12\"\n\navatar_url\x18\x05 \x01(\tH\x02R\tavatarUrl\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x03R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\r\n\x0b_avatar_urlB\t\n\x07_labels\"T\n\x1cProjectServiceUpdateResponse\x12\x34\n\x07project\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x07project\"\x7f\n\x1bProjectServiceInviteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"X\n\x1cProjectServiceInviteResponse\x12\x38\n\x06invite\x18\x01 \x01(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x06invite\"F\n ProjectServiceInvitesListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"_\n!ProjectServiceInvitesListResponse\x12:\n\x07invites\x18\x01 \x03(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x07invites\"8\n\x1eProjectServiceInviteGetRequest\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\"[\n\x1fProjectServiceInviteGetResponse\x12\x38\n\x06invite\x18\x01 \x01(\x0b\x32 .metalstack.api.v2.ProjectInviteR\x06invite\"_\n!ProjectServiceRemoveMemberRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06member\x18\x02 \x01(\tR\x06member\"$\n\"ProjectServiceRemoveMemberResponse\"\x9d\x01\n!ProjectServiceUpdateMemberRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06member\x18\x02 \x01(\tR\x06member\x12<\n\x04role\x18\x03 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"m\n\"ProjectServiceUpdateMemberResponse\x12G\n\x0eproject_member\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.ProjectMemberR\rprojectMember\";\n!ProjectServiceInviteAcceptRequest\x12\x16\n\x06secret\x18\x01 \x01(\tR\x06secret\"a\n\"ProjectServiceInviteAcceptResponse\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12!\n\x0cproject_name\x18\x02 \x01(\tR\x0bprojectName\"_\n!ProjectServiceInviteDeleteRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"$\n\"ProjectServiceInviteDeleteResponse2\xef\x0b\n\x0eProjectService\x12m\n\x04List\x12,.metalstack.api.v2.ProjectServiceListRequest\x1a-.metalstack.api.v2.ProjectServiceListResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x02\x12m\n\x03Get\x12+.metalstack.api.v2.ProjectServiceGetRequest\x1a,.metalstack.api.v2.ProjectServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.ProjectServiceCreateRequest\x1a/.metalstack.api.v2.ProjectServiceCreateResponse\"\n\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12t\n\x06\x44\x65lete\x12..metalstack.api.v2.ProjectServiceDeleteRequest\x1a/.metalstack.api.v2.ProjectServiceDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.ProjectServiceUpdateRequest\x1a/.metalstack.api.v2.ProjectServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12\x86\x01\n\x0cRemoveMember\x12\x34.metalstack.api.v2.ProjectServiceRemoveMemberRequest\x1a\x35.metalstack.api.v2.ProjectServiceRemoveMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x86\x01\n\x0cUpdateMember\x12\x34.metalstack.api.v2.ProjectServiceUpdateMemberRequest\x1a\x35.metalstack.api.v2.ProjectServiceUpdateMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12t\n\x06Invite\x12..metalstack.api.v2.ProjectServiceInviteRequest\x1a/.metalstack.api.v2.ProjectServiceInviteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x85\x01\n\x0cInviteAccept\x12\x34.metalstack.api.v2.ProjectServiceInviteAcceptRequest\x1a\x35.metalstack.api.v2.ProjectServiceInviteAcceptResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x01\x12\x86\x01\n\x0cInviteDelete\x12\x34.metalstack.api.v2.ProjectServiceInviteDeleteRequest\x1a\x35.metalstack.api.v2.ProjectServiceInviteDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n\x0bInvitesList\x12\x33.metalstack.api.v2.ProjectServiceInvitesListRequest\x1a\x34.metalstack.api.v2.ProjectServiceInvitesListResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x02\x12|\n\tInviteGet\x12\x31.metalstack.api.v2.ProjectServiceInviteGetRequest\x1a\x32.metalstack.api.v2.ProjectServiceInviteGetResponse\"\x08\xd8\xf3\x18\x03\xe0\xf3\x18\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cProjectProtoP\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')
31
32
 
32
33
  _globals = globals()
33
34
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -35,12 +36,16 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.api.v2.project_p
35
36
  if not _descriptor._USE_C_DESCRIPTORS:
36
37
  _globals['DESCRIPTOR']._loaded_options = None
37
38
  _globals['DESCRIPTOR']._serialized_options = b'\n\025com.metalstack.api.v2B\014ProjectProtoP\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['_PROJECT'].fields_by_name['name']._loaded_options = None
40
+ _globals['_PROJECT'].fields_by_name['name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
41
+ _globals['_PROJECT'].fields_by_name['description']._loaded_options = None
42
+ _globals['_PROJECT'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
38
43
  _globals['_PROJECTMEMBER'].fields_by_name['role']._loaded_options = None
39
44
  _globals['_PROJECTMEMBER'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001'
40
45
  _globals['_PROJECTINVITE'].fields_by_name['role']._loaded_options = None
41
46
  _globals['_PROJECTINVITE'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001'
42
47
  _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['name']._loaded_options = None
43
- _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['name']._serialized_options = b'\272H\007r\005\020\002\030\200\001'
48
+ _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
44
49
  _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['tenant']._loaded_options = None
45
50
  _globals['_PROJECTSERVICELISTREQUEST'].fields_by_name['tenant']._serialized_options = b'\272H\007r\005\020\002\030\200\001'
46
51
  _globals['_PROJECTSERVICEGETREQUEST'].fields_by_name['project']._loaded_options = None
@@ -48,9 +53,9 @@ if not _descriptor._USE_C_DESCRIPTORS:
48
53
  _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['login']._loaded_options = None
49
54
  _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['login']._serialized_options = b'\272H\007r\005\020\002\030\200\001'
50
55
  _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['name']._loaded_options = None
51
- _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\006r\004\020\002\030@'
56
+ _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
52
57
  _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['description']._loaded_options = None
53
- _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\007r\005\020\002\030\200\004'
58
+ _globals['_PROJECTSERVICECREATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
54
59
  _globals['_PROJECTSERVICEDELETEREQUEST'].fields_by_name['project']._loaded_options = None
55
60
  _globals['_PROJECTSERVICEDELETEREQUEST'].fields_by_name['project']._serialized_options = b'\272H\005r\003\260\001\001'
56
61
  _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['project']._loaded_options = None
@@ -58,9 +63,9 @@ if not _descriptor._USE_C_DESCRIPTORS:
58
63
  _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['update_meta']._loaded_options = None
59
64
  _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['update_meta']._serialized_options = b'\272H\003\310\001\001'
60
65
  _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['name']._loaded_options = None
61
- _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\006r\004\020\002\030@'
66
+ _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
62
67
  _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['description']._loaded_options = None
63
- _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\007r\005\020\002\030\200\004'
68
+ _globals['_PROJECTSERVICEUPDATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
64
69
  _globals['_PROJECTSERVICEINVITEREQUEST'].fields_by_name['project']._loaded_options = None
65
70
  _globals['_PROJECTSERVICEINVITEREQUEST'].fields_by_name['project']._serialized_options = b'\272H\005r\003\260\001\001'
66
71
  _globals['_PROJECTSERVICEINVITEREQUEST'].fields_by_name['role']._loaded_options = None
@@ -99,60 +104,60 @@ if not _descriptor._USE_C_DESCRIPTORS:
99
104
  _globals['_PROJECTSERVICE'].methods_by_name['InvitesList']._serialized_options = b'\312\363\030\001\001\340\363\030\002'
100
105
  _globals['_PROJECTSERVICE'].methods_by_name['InviteGet']._loaded_options = None
101
106
  _globals['_PROJECTSERVICE'].methods_by_name['InviteGet']._serialized_options = b'\330\363\030\003\340\363\030\002'
102
- _globals['_PROJECT']._serialized_start=149
103
- _globals['_PROJECT']._serialized_end=352
104
- _globals['_PROJECTMEMBER']._serialized_start=355
105
- _globals['_PROJECTMEMBER']._serialized_end=558
106
- _globals['_PROJECTINVITE']._serialized_start=561
107
- _globals['_PROJECTINVITE']._serialized_end=920
108
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=923
109
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=1143
110
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=1145
111
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=1229
112
- _globals['_PROJECTSERVICEGETREQUEST']._serialized_start=1231
113
- _globals['_PROJECTSERVICEGETREQUEST']._serialized_end=1293
114
- _globals['_PROJECTSERVICEGETRESPONSE']._serialized_start=1296
115
- _globals['_PROJECTSERVICEGETRESPONSE']._serialized_end=1452
116
- _globals['_PROJECTSERVICECREATEREQUEST']._serialized_start=1455
117
- _globals['_PROJECTSERVICECREATEREQUEST']._serialized_end=1697
118
- _globals['_PROJECTSERVICECREATERESPONSE']._serialized_start=1699
119
- _globals['_PROJECTSERVICECREATERESPONSE']._serialized_end=1783
120
- _globals['_PROJECTSERVICEDELETEREQUEST']._serialized_start=1785
121
- _globals['_PROJECTSERVICEDELETEREQUEST']._serialized_end=1850
122
- _globals['_PROJECTSERVICEDELETERESPONSE']._serialized_start=1852
123
- _globals['_PROJECTSERVICEDELETERESPONSE']._serialized_end=1936
124
- _globals['_PROJECTSERVICEUPDATEREQUEST']._serialized_start=1939
125
- _globals['_PROJECTSERVICEUPDATEREQUEST']._serialized_end=2312
126
- _globals['_PROJECTSERVICEUPDATERESPONSE']._serialized_start=2314
127
- _globals['_PROJECTSERVICEUPDATERESPONSE']._serialized_end=2398
128
- _globals['_PROJECTSERVICEINVITEREQUEST']._serialized_start=2400
129
- _globals['_PROJECTSERVICEINVITEREQUEST']._serialized_end=2527
130
- _globals['_PROJECTSERVICEINVITERESPONSE']._serialized_start=2529
131
- _globals['_PROJECTSERVICEINVITERESPONSE']._serialized_end=2617
132
- _globals['_PROJECTSERVICEINVITESLISTREQUEST']._serialized_start=2619
133
- _globals['_PROJECTSERVICEINVITESLISTREQUEST']._serialized_end=2689
134
- _globals['_PROJECTSERVICEINVITESLISTRESPONSE']._serialized_start=2691
135
- _globals['_PROJECTSERVICEINVITESLISTRESPONSE']._serialized_end=2786
136
- _globals['_PROJECTSERVICEINVITEGETREQUEST']._serialized_start=2788
137
- _globals['_PROJECTSERVICEINVITEGETREQUEST']._serialized_end=2844
138
- _globals['_PROJECTSERVICEINVITEGETRESPONSE']._serialized_start=2846
139
- _globals['_PROJECTSERVICEINVITEGETRESPONSE']._serialized_end=2937
140
- _globals['_PROJECTSERVICEREMOVEMEMBERREQUEST']._serialized_start=2939
141
- _globals['_PROJECTSERVICEREMOVEMEMBERREQUEST']._serialized_end=3034
142
- _globals['_PROJECTSERVICEREMOVEMEMBERRESPONSE']._serialized_start=3036
143
- _globals['_PROJECTSERVICEREMOVEMEMBERRESPONSE']._serialized_end=3072
144
- _globals['_PROJECTSERVICEUPDATEMEMBERREQUEST']._serialized_start=3075
145
- _globals['_PROJECTSERVICEUPDATEMEMBERREQUEST']._serialized_end=3232
146
- _globals['_PROJECTSERVICEUPDATEMEMBERRESPONSE']._serialized_start=3234
147
- _globals['_PROJECTSERVICEUPDATEMEMBERRESPONSE']._serialized_end=3343
148
- _globals['_PROJECTSERVICEINVITEACCEPTREQUEST']._serialized_start=3345
149
- _globals['_PROJECTSERVICEINVITEACCEPTREQUEST']._serialized_end=3404
150
- _globals['_PROJECTSERVICEINVITEACCEPTRESPONSE']._serialized_start=3406
151
- _globals['_PROJECTSERVICEINVITEACCEPTRESPONSE']._serialized_end=3503
152
- _globals['_PROJECTSERVICEINVITEDELETEREQUEST']._serialized_start=3505
153
- _globals['_PROJECTSERVICEINVITEDELETEREQUEST']._serialized_end=3600
154
- _globals['_PROJECTSERVICEINVITEDELETERESPONSE']._serialized_start=3602
155
- _globals['_PROJECTSERVICEINVITEDELETERESPONSE']._serialized_end=3638
156
- _globals['_PROJECTSERVICE']._serialized_start=3641
157
- _globals['_PROJECTSERVICE']._serialized_end=5160
107
+ _globals['_PROJECT']._serialized_start=191
108
+ _globals['_PROJECT']._serialized_end=420
109
+ _globals['_PROJECTMEMBER']._serialized_start=423
110
+ _globals['_PROJECTMEMBER']._serialized_end=626
111
+ _globals['_PROJECTINVITE']._serialized_start=629
112
+ _globals['_PROJECTINVITE']._serialized_end=988
113
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=991
114
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=1212
115
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=1214
116
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=1298
117
+ _globals['_PROJECTSERVICEGETREQUEST']._serialized_start=1300
118
+ _globals['_PROJECTSERVICEGETREQUEST']._serialized_end=1362
119
+ _globals['_PROJECTSERVICEGETRESPONSE']._serialized_start=1365
120
+ _globals['_PROJECTSERVICEGETRESPONSE']._serialized_end=1521
121
+ _globals['_PROJECTSERVICECREATEREQUEST']._serialized_start=1524
122
+ _globals['_PROJECTSERVICECREATEREQUEST']._serialized_end=1769
123
+ _globals['_PROJECTSERVICECREATERESPONSE']._serialized_start=1771
124
+ _globals['_PROJECTSERVICECREATERESPONSE']._serialized_end=1855
125
+ _globals['_PROJECTSERVICEDELETEREQUEST']._serialized_start=1857
126
+ _globals['_PROJECTSERVICEDELETEREQUEST']._serialized_end=1922
127
+ _globals['_PROJECTSERVICEDELETERESPONSE']._serialized_start=1924
128
+ _globals['_PROJECTSERVICEDELETERESPONSE']._serialized_end=2008
129
+ _globals['_PROJECTSERVICEUPDATEREQUEST']._serialized_start=2011
130
+ _globals['_PROJECTSERVICEUPDATEREQUEST']._serialized_end=2387
131
+ _globals['_PROJECTSERVICEUPDATERESPONSE']._serialized_start=2389
132
+ _globals['_PROJECTSERVICEUPDATERESPONSE']._serialized_end=2473
133
+ _globals['_PROJECTSERVICEINVITEREQUEST']._serialized_start=2475
134
+ _globals['_PROJECTSERVICEINVITEREQUEST']._serialized_end=2602
135
+ _globals['_PROJECTSERVICEINVITERESPONSE']._serialized_start=2604
136
+ _globals['_PROJECTSERVICEINVITERESPONSE']._serialized_end=2692
137
+ _globals['_PROJECTSERVICEINVITESLISTREQUEST']._serialized_start=2694
138
+ _globals['_PROJECTSERVICEINVITESLISTREQUEST']._serialized_end=2764
139
+ _globals['_PROJECTSERVICEINVITESLISTRESPONSE']._serialized_start=2766
140
+ _globals['_PROJECTSERVICEINVITESLISTRESPONSE']._serialized_end=2861
141
+ _globals['_PROJECTSERVICEINVITEGETREQUEST']._serialized_start=2863
142
+ _globals['_PROJECTSERVICEINVITEGETREQUEST']._serialized_end=2919
143
+ _globals['_PROJECTSERVICEINVITEGETRESPONSE']._serialized_start=2921
144
+ _globals['_PROJECTSERVICEINVITEGETRESPONSE']._serialized_end=3012
145
+ _globals['_PROJECTSERVICEREMOVEMEMBERREQUEST']._serialized_start=3014
146
+ _globals['_PROJECTSERVICEREMOVEMEMBERREQUEST']._serialized_end=3109
147
+ _globals['_PROJECTSERVICEREMOVEMEMBERRESPONSE']._serialized_start=3111
148
+ _globals['_PROJECTSERVICEREMOVEMEMBERRESPONSE']._serialized_end=3147
149
+ _globals['_PROJECTSERVICEUPDATEMEMBERREQUEST']._serialized_start=3150
150
+ _globals['_PROJECTSERVICEUPDATEMEMBERREQUEST']._serialized_end=3307
151
+ _globals['_PROJECTSERVICEUPDATEMEMBERRESPONSE']._serialized_start=3309
152
+ _globals['_PROJECTSERVICEUPDATEMEMBERRESPONSE']._serialized_end=3418
153
+ _globals['_PROJECTSERVICEINVITEACCEPTREQUEST']._serialized_start=3420
154
+ _globals['_PROJECTSERVICEINVITEACCEPTREQUEST']._serialized_end=3479
155
+ _globals['_PROJECTSERVICEINVITEACCEPTRESPONSE']._serialized_start=3481
156
+ _globals['_PROJECTSERVICEINVITEACCEPTRESPONSE']._serialized_end=3578
157
+ _globals['_PROJECTSERVICEINVITEDELETEREQUEST']._serialized_start=3580
158
+ _globals['_PROJECTSERVICEINVITEDELETEREQUEST']._serialized_end=3675
159
+ _globals['_PROJECTSERVICEINVITEDELETERESPONSE']._serialized_start=3677
160
+ _globals['_PROJECTSERVICEINVITEDELETERESPONSE']._serialized_end=3713
161
+ _globals['_PROJECTSERVICE']._serialized_start=3716
162
+ _globals['_PROJECTSERVICE']._serialized_end=5235
158
163
  # @@protoc_insertion_point(module_scope)
@@ -3,6 +3,7 @@ import datetime
3
3
  from buf.validate import validate_pb2 as _validate_pb2
4
4
  from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
5
  from metalstack.api.v2 import common_pb2 as _common_pb2
6
+ from metalstack.api.v2 import predefined_rules_pb2 as _predefined_rules_pb2
6
7
  from google.protobuf.internal import containers as _containers
7
8
  from google.protobuf import descriptor as _descriptor
8
9
  from google.protobuf import message as _message
@@ -1,30 +1,30 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Generated by https://github.com/i2y/connecpy/v2/protoc-gen-connecpy. DO NOT EDIT!
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
3
  # source: metalstack/api/v2/size.proto
4
4
 
5
5
  from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
6
6
  from typing import Protocol
7
7
 
8
- from connecpy.client import ConnecpyClient, ConnecpyClientSync
9
- from connecpy.code import Code
10
- from connecpy.exceptions import ConnecpyException
11
- from connecpy.interceptor import Interceptor, InterceptorSync
12
- from connecpy.method import IdempotencyLevel, MethodInfo
13
- from connecpy.request import Headers, RequestContext
14
- from connecpy.server import ConnecpyASGIApplication, ConnecpyWSGIApplication, Endpoint, EndpointSync
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
15
  import metalstack.api.v2.size_pb2 as metalstack_dot_api_dot_v2_dot_size__pb2
16
16
 
17
17
 
18
18
  class SizeService(Protocol):
19
19
  async def get(self, request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetResponse:
20
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
21
 
22
22
  async def list(self, request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceListResponse:
23
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
23
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
24
 
25
25
 
26
- class SizeServiceASGIApplication(ConnecpyASGIApplication):
27
- def __init__(self, service: SizeService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None):
26
+ class SizeServiceASGIApplication(ConnectASGIApplication):
27
+ def __init__(self, service: SizeService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
28
28
  super().__init__(
29
29
  endpoints={
30
30
  "/metalstack.api.v2.SizeService/Get": Endpoint.unary(
@@ -53,12 +53,12 @@ class SizeServiceASGIApplication(ConnecpyASGIApplication):
53
53
  )
54
54
 
55
55
  @property
56
- def path(self):
56
+ def path(self) -> str:
57
57
  """Returns the URL path to mount the application to when serving multiple applications."""
58
58
  return "/metalstack.api.v2.SizeService"
59
59
 
60
60
 
61
- class SizeServiceClient(ConnecpyClient):
61
+ class SizeServiceClient(ConnectClient):
62
62
  async def get(
63
63
  self,
64
64
  request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetRequest,
@@ -102,13 +102,13 @@ class SizeServiceClient(ConnecpyClient):
102
102
 
103
103
  class SizeServiceSync(Protocol):
104
104
  def get(self, request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetResponse:
105
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
105
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
106
106
  def list(self, request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceListRequest, ctx: RequestContext) -> metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceListResponse:
107
- raise ConnecpyException(Code.UNIMPLEMENTED, "Not implemented")
107
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
108
108
 
109
109
 
110
- class SizeServiceWSGIApplication(ConnecpyWSGIApplication):
111
- def __init__(self, service: SizeServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None):
110
+ class SizeServiceWSGIApplication(ConnectWSGIApplication):
111
+ def __init__(self, service: SizeServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
112
112
  super().__init__(
113
113
  endpoints={
114
114
  "/metalstack.api.v2.SizeService/Get": EndpointSync.unary(
@@ -137,12 +137,12 @@ class SizeServiceWSGIApplication(ConnecpyWSGIApplication):
137
137
  )
138
138
 
139
139
  @property
140
- def path(self):
140
+ def path(self) -> str:
141
141
  """Returns the URL path to mount the application to when serving multiple applications."""
142
142
  return "/metalstack.api.v2.SizeService"
143
143
 
144
144
 
145
- class SizeServiceClientSync(ConnecpyClientSync):
145
+ class SizeServiceClientSync(ConnectClientSync):
146
146
  def get(
147
147
  self,
148
148
  request: metalstack_dot_api_dot_v2_dot_size__pb2.SizeServiceGetRequest,